in_array()用于数组数组

时间:2013-11-08 15:10:15

标签: php arrays

是否有像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()这是我正在寻找的函数(避免循环)给出了空。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

顺便说一下,它没有避开第一个,它避开了最后一个'ac'。所以你从前两个开始就是真的。你的代码有效,但我不确定这是不是你想要的。