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'; } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
