答案是否定的,
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 举报,一经查实,本站将立刻删除。