加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 02:31:38 所属栏目: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';

}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读