我试图查看此数组中是否存在某个值,如果存在,则返回键:
$letter = 'B';
$array[0]['ID'] = 1;
$array[0]['Find'] = 'A';
$array[1]['ID'] = 2;
$array[1]['Find'] = 'B';
$found = array_search($letter, $array);
if ($found) {
unset($array[$found]);
}
据我所知,这不是在找到值时丢弃数组元素。有什么建议吗?
答案 0 :(得分:4)
如果您正在查看该特定列:
$found = array_search($letter, array_column($array, 'Find'));
unset($array[$found]);
Find
列并搜索unset()
不唯一Find
或者替代:
$array = array_column($array, null, 'Find');
unset($array[$letter]);
Find
对其进行索引,这样您就可以unset()
答案 1 :(得分:2)
使用array_filter仅保存没有B
的元素$arrayWithoutB = array_filter($array,
function($i) use($letter){ return $i['Find'] != $letter; });
答案 2 :(得分:0)
如果您要在Find
字段中进行搜索,并在示例中返回相应的ID
字段,则希望在第四行中匹配:
$array[1]['Find'] = 'B';
然后你需要实际迭代外部维度:
foreach ($a in $array) {
if ($a['Find'] == $letter) {
// found, return the ID field
return $a['ID'];
}
}
如果您想要返回其他内容,请告诉我,希望这会有所帮助:)