PHP多维数组搜索键
我想要值为“橙色”的键。我试过使用array\u搜索和array\u列,但很明显我遇到了array\u列问题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
$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;