Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多维数组中的搜索和获取键_Php_Arrays - Fatal编程技术网

Php 多维数组中的搜索和获取键

Php 多维数组中的搜索和获取键,php,arrays,Php,Arrays,我有多维数组,我需要通过“add_fields”数组中的值通过“value”搜索顶级键。我想不出我能达到这个结果。有人能帮我吗 我在谷歌上搜索了一下,找到了几个解决方案,但没有得到任何结果 尝试此代码 array_search('001001', array_column(array_column($arr, "usr_column_504"), 0)), 但我什么也没拿到,我需要拿到顶级钥匙。在本例中,其0 array ( 0 => ar

我有多维数组,我需要通过“add_fields”数组中的值通过“value”搜索顶级键。我想不出我能达到这个结果。有人能帮我吗

我在谷歌上搜索了一下,找到了几个解决方案,但没有得到任何结果

尝试此代码

array_search('001001', array_column(array_column($arr, "usr_column_504"), 0)), 
但我什么也没拿到,我需要拿到顶级钥匙。在本例中,其0

array (
    0 => 
        array (
          'id' => 1,
          'group_id' => 327,
          'volume' => 0,
          'vat' => 1,
          'order_id' => 1,
          'add_fields' => 
          array (
            1 => 
            array (
              'field' => 'usr_column_501',
              'value' => '',
            ),
            2 => 
            array (
              'field' => 'usr_column_504',
              'value' => '001001',
            ),
          ),
        ),
    1 => 
        array (
          'id' => 2,
          'group_id' => 327,
          'vat' => 1,
          'order_id' => 2,
          'add_fields' => 
          array (
            1 => 
            array (
              'field' => 'usr_column_501',
              'value' => '',
            ),
            2 => 
            array (
              'field' => 'usr_column_504',
              'value' => '001002',
            ),
          ),
        ),
)

如果您想要第一个键,其中
字段
的值等于
usr\u column\u 504
,则可以使用外部和内部foreach

foreach ($arr as $key => $item) {  
    foreach ($item["add_fields"] as $addField) {
        if ($addField["field"] === "usr_column_504") {
            echo $key;
            return;
        }
    }
}
找到字段值后,从外部foreach返回
$key

foreach ($arr as $key => $item) {  
    foreach ($item["add_fields"] as $addField) {
        if ($addField["field"] === "usr_column_504") {
            echo $key;
            return;
        }
    }
}
输出

0

您知道这是如何工作的,请向我们展示您的最佳尝试(代码)-实际结果是什么,需要什么,出现了什么错误,您是否进行了任何调试?已编辑的问题。但我没有得到任何错误,只是空数组()