0

有没有类似的功能in_array(),可以检查数组数组中的内容?

我试过了:

$day_events = Array();
array_push($day_events,array('aa','bb','cc'));
array_push($day_events,array('aa','bc','cd'));
array_push($day_events,array('ac','bd','ce'));
echo '<br />';
echo in_array('aa',$day_events); // empty
echo '<br />';
foreach ($day_events as &$value) {
    echo in_array('aa',$value); // 11
}

第一个 in_array() 是我正在寻找的那种函数(避免循环)给了空。

4

2 回答 2

0

顺便说一句,它不是避免第一个,而是避免最后一个有“ac”的。所以你从前两个得到真实的。您的代码有效,但我不确定这是否是您想要的。

于 2013-11-08T15:18:08.640 回答
0

使用这个函数,因为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;
}

在这种情况下,您会像这样使用它:

echo in_array_r('aa', $day_events) ? 'Found' : 'Not found';

它取自这个答案:https ://stackoverflow.com/a/4128377/2612112 。

于 2013-11-08T15:14:24.757 回答