如何从数组中获取特定元素并基于数组键值的比较创建一个新数组?

PHP情人

我的问题听起来有些困惑。但实际上,这是一个非常简单的过程。让我为您清除情况。我有一个标题$test_result_data如下的数组

Array
(
    [0] => Array
        (
            [test_pack_id] => 8ed32f6479a0169db3531d3366996d35
            [test_pack_name] => CPT Free Samples
            [test_pack_desc] => This package contains a free sample test of 30 minutes containing 30 questions from - Fundamentals of accounting, Mercantile Law, General Economics and Quantitative Aptitude. This is perfect to discover the beauty of online exam preparation.
            [test_pack_type_id] => 7
            [test_pack_image] => 
            [test_pack_validity_year] => 0
            [test_pack_validity_month] => 0
            [test_pack_validity_days] => 3
            [test_pack_plan] => free
            [test_pack_price] => 0.00
            [test_pack_no_tests] => 0
            [test_pack_publish] => yes
            [test_pack_code] => 
            [test_pack_sold] => 22
            [test_pack_created_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_updated_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_created_date] => 1337014879
            [test_pack_updated_date] => 1376886700
            [test_pack_purchase_date] => 1364454118
            [test_details] => Array
                (
                    [0] => Array
                        (
                            [test_id] => 159
                            [test_name] => CPT Sample Test
                            [test_max_score] => 120.000
                            [test_no_questions] => 30
                            [test_attempt] => 15
                            [test_not_attempt] => 7
                            [avg_test_user_time_used] => 00:04:39 Hr
                            [top_score] => 46.00
                            [avg_score] => 3
                            [lower_score] => 0.00
                        )

                )

        )

    [1] => Array
        (
            [test_pack_id] => 84880f321fc957f9b28b702d5a43f57b
            [test_pack_name] => CPT General Economics
            [test_pack_desc] => This Package contains <b>16 chapterwise testlets</b> of 15 minutes each, <b>8 chapterwise tests </b>of 1 hour each and <b>3 full syllabus tests</b> of 1 hour covering syllabus of CPT General Economics.<br>
<b>Total Tests in this Package : 27</b>
            [test_pack_type_id] => 7
            [test_pack_image] => 
            [test_pack_validity_year] => 0
            [test_pack_validity_month] => 6
            [test_pack_validity_days] => 0
            [test_pack_plan] => paid
            [test_pack_price] => 359.00
            [test_pack_no_tests] => 0
            [test_pack_publish] => yes
            [test_pack_code] => 
            [test_pack_sold] => 0
            [test_pack_created_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_updated_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
            [test_pack_created_date] => 1338298119
            [test_pack_updated_date] => 1343564534
            [test_pack_purchase_date] => 0
            [test_details] => Array
                (
                    [0] => Array
                        (
                            [test_id] => 580
                            [test_name] => CPT Testlet : Demand & Supply 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [1] => Array
                        (
                            [test_id] => 581
                            [test_name] => CPT Test : Micro Economics
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [2] => Array
                        (
                            [test_id] => 583
                            [test_name] => CPT Testlet : Micro Economics 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [3] => Array
                        (
                            [test_id] => 582
                            [test_name] => CPT Testlet : Micro Economics 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [4] => Array
                        (
                            [test_id] => 579
                            [test_name] => CPT Testlet : Demand & Supply 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [5] => Array
                        (
                            [test_id] => 578
                            [test_name] => CPT Test : Demand & Supply
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [6] => Array
                        (
                            [test_id] => 577
                            [test_name] => CPT Testlet : Production & Cost 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [7] => Array
                        (
                            [test_id] => 576
                            [test_name] => CPT Testlet : Production & Cost 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [8] => Array
                        (
                            [test_id] => 575
                            [test_name] => CPT Test : Production & Cost
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [9] => Array
                        (
                            [test_id] => 574
                            [test_name] => CPT Testlet : Price Determination 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [10] => Array
                        (
                            [test_id] => 573
                            [test_name] => CPT Testlet : Price Determination 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [11] => Array
                        (
                            [test_id] => 572
                            [test_name] => CPT Test : Price Determination
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [12] => Array
                        (
                            [test_id] => 571
                            [test_name] => CPT Testlet : Indian Economy - A Profile 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [13] => Array
                        (
                            [test_id] => 570
                            [test_name] => CPT Testlet : Indian Economy - A Profile 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [14] => Array
                        (
                            [test_id] => 569
                            [test_name] => CPT Test : Indian Economy - A Profile
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [15] => Array
                        (
                            [test_id] => 568
                            [test_name] => CPT Testlet : Aspects of Indian Economy 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [16] => Array
                        (
                            [test_id] => 567
                            [test_name] => CPT Testlet : Aspects of Indian Economy 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [17] => Array
                        (
                            [test_id] => 566
                            [test_name] => CPT Test : Aspects of Indian Economy
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [18] => Array
                        (
                            [test_id] => 565
                            [test_name] => CPT Testlet : Economic Reforms in India 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [19] => Array
                        (
                            [test_id] => 564
                            [test_name] => CPT Testlet : Economic Reforms in India 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [20] => Array
                        (
                            [test_id] => 563
                            [test_name] => CPT Test : Economic Reforms in India
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [21] => Array
                        (
                            [test_id] => 562
                            [test_name] => CPT Testlet : Money & Banking 1
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [22] => Array
                        (
                            [test_id] => 561
                            [test_name] => CPT Testlet : Money & Banking 2
                            [test_max_score] => 40.000
                            [test_no_questions] => 10
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [23] => Array
                        (
                            [test_id] => 560
                            [test_name] => CPT Test : Money & Banking
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [24] => Array
                        (
                            [test_id] => 559
                            [test_name] => CPT Test : General Economics 1
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                    [25] => Array
                        (
                            [test_id] => 558
                            [test_name] => CPT Test : General Economics 2
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 0.00
                            [avg_score] => 0
                            [lower_score] => 0.00
                        )

                    [26] => Array
                        (
                            [test_id] => 557
                            [test_name] => CPT Test : General Economics 3
                            [test_max_score] => 50.000
                            [test_no_questions] => 50
                            [test_attempt] => 0
                            [test_not_attempt] => 0
                            [top_score] => 
                            [avg_score] => 0
                            [lower_score] => 
                        )

                )

        )

)

现在您可以看到该数组内部有两个主要数组。这些数组中的每个数组都包含测试包数据。这个数组是动态创建的,因此我们不能说每次包含多少个项目。现在,我要一个$test_pack_id,我只想从上述数组中获取键[test_pack_id]的值与变量的值成正比的那些数组元素$test_pack_id我想为这些匹配的测试包数据项创建一个全新的数组。谁能帮我获得这个阵列?

假设我有以下变量:

$test_pack_id = '84880f321fc957f9b28b702d5a43f57b';//This is my input

数组$test_result_data可以一次,多次或在其中不包含此ID。但是,如果找到匹配项,则应返回所有匹配的元素。在上述情况下,输出应如下所示:

Array
(
    [0] => Array
        (
[test_pack_id] => 84880f321fc957f9b28b702d5a43f57b
                [test_pack_name] => CPT General Economics
                [test_pack_desc] => This Package contains <b>16 chapterwise testlets</b> of 15 minutes each, <b>8 chapterwise tests </b>of 1 hour each and <b>3 full syllabus tests</b> of 1 hour covering syllabus of CPT General Economics.<br>
    <b>Total Tests in this Package : 27</b>
                [test_pack_type_id] => 7
                [test_pack_image] => 
                [test_pack_validity_year] => 0
                [test_pack_validity_month] => 6
                [test_pack_validity_days] => 0
                [test_pack_plan] => paid
                [test_pack_price] => 359.00
                [test_pack_no_tests] => 0
                [test_pack_publish] => yes
                [test_pack_code] => 
                [test_pack_sold] => 0
                [test_pack_created_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
                [test_pack_updated_staff_id] => ff8d4a5ea6bf11dce105aa2fa7b959b8
                [test_pack_created_date] => 1338298119
                [test_pack_updated_date] => 1343564534
                [test_pack_purchase_date] => 0
                [test_details] => Array
                    (
                        [0] => Array
                            (
                                [test_id] => 580
                                [test_name] => CPT Testlet : Demand & Supply 1
                                [test_max_score] => 40.000
                                [test_no_questions] => 10
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 
                                [avg_score] => 0
                                [lower_score] => 
                            )

                        [1] => Array
                            (
                                [test_id] => 581
                                [test_name] => CPT Test : Micro Economics
                                [test_max_score] => 50.000
                                [test_no_questions] => 50
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 
                                [avg_score] => 0
                                [lower_score] => 
                            )

                        [2] => Array
                            (
                                [test_id] => 583
                                [test_name] => CPT Testlet : Micro Economics 1
                                [test_max_score] => 40.000
                                [test_no_questions] => 10
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 
                                [avg_score] => 0
                                [lower_score] => 
                            )

                        [3] => Array
                            (
                                [test_id] => 582
                                [test_name] => CPT Testlet : Micro Economics 2
                                [test_max_score] => 40.000
                                [test_no_questions] => 10
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 0.00
                                [avg_score] => 0
                                [lower_score] => 0.00
                            )

                        [4] => Array
                            (
                                [test_id] => 579
                                [test_name] => CPT Testlet : Demand & Supply 2
                                [test_max_score] => 40.000
                                [test_no_questions] => 10
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 
                                [avg_score] => 0
                                [lower_score] => 
                            )

                        [5] => Array
                            (
                                [test_id] => 578
                                [test_name] => CPT Test : Demand & Supply
                                [test_max_score] => 50.000
                                [test_no_questions] => 50
                                [test_attempt] => 0
                                [test_not_attempt] => 0
                                [top_score] => 0.00
                                [avg_score] => 0
                                [lower_score] => 0.00
                            )




                    )

            )

    )
菲利普·戈尼(FilipGórny)

使用array_filter

$filtered = array_filter($yourArray, function($element) use($test_pack_id) {
  return $element['test_pack_id'] == $test_pack_id;
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较javascript中的数组并创建一个新的元素数组,该数组正在被删除

如何从对象数组中创建一个新数组?

基于数组中的一个键值如何找到另一个键的值?

如何获取数组键值并计算一个数组对象中的值

如何从包含HTML代码的数组元素中提取特定部分,并使用提取的内容创建一个新数组?

我如何从具有特定ID的数组中获取对象与另一个数组编号进行比较

如何为另一个数组中的每个键值分配一个新数组

如何基于数组和另一个对象创建一个新对象?

如何获取Ruby中数组的最后一个元素?

你如何删除数组中的元素,而无需创建一个新的数组或使用的ArrayList?java的

合并数组以在Perl中创建一个新数组

使用两个数组中的公共元素创建一个新数组

根据当前数组中每个项目的第一个元素创建新数组

向数组中添加元素会创建一个新数组,而不是添加

创建一个具有对象中数组元素差异的新数组

从对象数组中拉出一个键值对的数组,并基于另一个键值对进行同时过滤

使用一个数组的元素作为索引来创建新数组,以选择其他数组中的元素-JavaScript

如何基于JavaScript中另一个数组的索引从数组中选择元素?

创建一个基于先前值的新对象数组

如何基于不同数组中的值创建一个数组Python Numpy

如何用另一个数组的元素替换数组中的特定关键元素

如何基于存储在另一个数组中的索引获取数组的项目

如何从两个创建一个新数组并根据原始数组中的值初始化新数组

如何从 json 数组中获取特定的键值对

我如何只考虑每个数组一个特定元素从数组数组中获得最大值的数组

如何通过与另一个数组比较从一个数组中删除公共元素

如何将数组中的特定元素放到另一个数组中

如何从数组中删除某些元素到一个新的数组,而其他元素只保留原始数组?

使用 JavaScript 使用多维数组的一个元素创建一个新数组