[英]PHP Multidimension in_array
我有一个二维数组,如下所示:
Array
(
[google.fr] => Array
(
[0] => Array
(
[0] => google.de
[1] => microsoft.de
[2] => google.com
[3] => apple.de
)
)
我现在需要检查的是,如果来自第一个维度的字符串(此处google.fr
等于我要比较的另一个字符串)。 我在StackOverflow中找到了另一个提供以下功能的线程:
function in_array_r($needle, $haystack, $strict = true) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
我这样称呼它:
if (in_array_r($row->name, $linkResult)) {
echo "<span style=color:red; margin-left:15px;> <b>!</b></span>";
}
但是无论$row->name
是什么,它都会返回false。 我想念什么?
如您所说, google.fr
是“第一个维度的字符串” 。
这是一个数组键,因此您应该将输入字符串与键进行比较(至少对于第一遍)。
更改功能代码,如下所示:
function in_array_r($needle, $haystack, $strict = true) {
foreach ($haystack as $k => $item) {
if (($strict ? $k === $needle : $k == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
var_dump(in_array_r('google.fr', $linkResult)); // outputs "true"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.