答案是否定的,
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\';
} 继续阅读与本文标签相同的文章
上一篇 :
php获取当前脚本文件名
-
宏旺半导体解答ECC与RECC内存之间的区别
2026-05-15栏目: 教程
-
2019软件著作权申请流程
2026-05-15栏目: 教程
-
苹果最新两项专利获得批准,泰坦计划仍不死
2026-05-15栏目: 教程
-
苹果手机图片格式独特,该如何转换成常用格式?
2026-05-15栏目: 教程
-
传统数据仓库和云数据仓库的区别
2026-05-15栏目: 教程
