PHP多维数组搜索键

PHP多维数组搜索键,php,Php,我想要值为“橙色”的键。我试过使用array\u搜索和array\u列,但很明显我遇到了array\u列问题 $list[7362][0]['value'] = 'apple'; $list[7362][1]['value'] = 'orange'; $list[9215][0]['value'] = 'lemon'; 如上所述 但我的情况有点不同。键应返回7362。您可以尝试以下操作: $key = array_search('orange', array_column($list, 'v

我想要值为“橙色”的键。我试过使用array\u搜索和array\u列,但很明显我遇到了array\u列问题

$list[7362][0]['value'] = 'apple';
$list[7362][1]['value'] = 'orange';
$list[9215][0]['value'] = 'lemon';
如上所述


但我的情况有点不同。键应返回7362。

您可以尝试以下操作:

$key = array_search('orange', array_column($list, 'value'));
<?php

$list = array();

$list[7362][0]['value'] = 'apple';
$list[7362][1]['value'] = 'orange';
$list[9215][0]['value'] = 'lemon';

foreach ($list as $keynum=>$keyarr) {
    foreach ($keyarr as $key=>$index) {
        if (array_search('orange', $index) !== false) {
            echo "orange found in $key >> $keynum";
        }   
    }   
}

?>
echo getKeys($list,'lemon')
将为您提供
在0>>9215中找到的柠檬

echo getKeys($list,'orange')将为您提供在1>>7362中找到的
橙色


echo getKeys($list,'apple')
将为您提供在0>>7362
中找到的
apple,它嵌套在该级别的
数组_列
中,因此只需循环:

<?php

function getKeys($list, $text) {
    foreach ($list as $keynum=>$keyarr) { 
        foreach ($keyarr as $key=>$index) { 
            if (array_search($text, $index) !== false) {
                return "$text found in $key >> $keynum";
            }
        }
    }

    return "not found";
}

$list = array();

$list[7362][0]['value'] = 'apple';
$list[7362][1]['value'] = 'orange';
$list[9215][0]['value'] = 'lemon';

echo getKeys($list, 'lemon');

?>
如果可以有多个数组,则创建一个数组,并且不要中断

foreach($list as $k => $v) {
    if(in_array('orange', array_column($v, 'value'))) {
        $key = $k;
        break;
    }
}
        $key[] = $k;
        //break;