微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php in_array()适用于多维数组吗

答案是否定的,

in_array()不适用于多维数组。您可以编写一个递归函数来为您执行此操作:

function in_array_r($needle,$haystack,$strict = false) {

foreach ($haystack as $item) {

if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle,$item,$strict))) {

return true;

}

}

return false;

}

用法

$b = array(array("Mac","NT"),array("Irix","Linux"));

echo in_array_r("Irix",$b) ? 'found' : 'not found';

或者用下面方法也行:

function in_array_r($item,$array){

return preg_match('/"'.preg_quote($item,'/').'"/i',json_encode($array));

}

用法

if(in_array_r($item,$array)){

// found!

}

还有一种方法,就是使用array_search()和array_column(),如下:

如果您知道要搜索哪个列,则可以使用array_search()和array_column():

$userdb = Array

(

(0) => Array

(

('uid') => '100',

('name') => 'Sandra Shush',

('url') => 'urlof100'

),

(1) => Array

(

('uid') => '5465',

('name') => 'Stefanie Mcmohn',

('url') => 'urlof5465'

),

(2) => Array

(

('uid') => '40489',

('name') => 'Michael',

('url') => 'urlof40489'

)

);

if(array_search('urlof5465',array_column($userdb,'url')) !== false) {

echo 'value is in multidim array';

}

else {

echo 'value is not in multidim array';

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐