2 回答
TA贡献1887条经验 获得超5个赞
你可以尝试这样的事情:
<?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 $keynum;您的目的。
遍历数组并找出找到的位置orange。
您可以将其重构为如下函数:
<?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');
?>
echo getKeys($list, 'lemon');会给你lemon found in 0 >> 9215。
echo getKeys($list, 'orange');会给你orange found in 1 >> 7362。
echo getKeys($list, 'apple');会给你apple found in 0 >> 7362。
TA贡献2039条经验 获得超7个赞
它array_column在该级别嵌套到很远,因此只需循环:
foreach($list as $k => $v) {
if(in_array('orange', array_column($v, 'value'))) {
$key = $k;
break;
}
}
如果可以有多个则创建一个数组并且不要break:
$key[] = $k;
//break;
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报