gpt4 book ai didi

php检查数组的数组中是否存在值

转载 作者:可可西里 更新时间:2023-11-01 12:29:31 26 4
gpt4 key购买 nike

我在数组中有一个数组。

$a = array ( 0 => array ( 'value' => 'America', ), 1 => array ( 'value' => 'England', ), )

如何检查数组中是否存在“America”? America 数组可以是任意键,并且可以有任意数量的子数组,因此请提供一个通用的解决方案。

查看 php 手册我看到了 in_array,但这只适用于顶层。所以像 in_array("America", $a) 这样的东西是行不通的。

谢谢。

最佳答案

一般的解决方案是:

function deep_in_array($needle, $haystack) {
if(in_array($needle, $haystack)) {
return true;
}
foreach($haystack as $element) {
if(is_array($element) && deep_in_array($needle, $element))
return true;
}
return false;
}

我选择使用 in_array 循环的原因是:在我检查数组结构的更深层次之前,我确定搜索的值不是在目前的水平。这样,我希望代码比执行某种深度优先搜索方法更快。


当然,如果你的数组总是二维的,而你只想在这种数组中搜索,那么这样会更快:

function in_2d_array($needle, $haystack) {
foreach($haystack as $element) {
if(in_array($needle, $element))
return true;
}
return false;
}

关于php检查数组的数组中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com