簡體   English   中英

in_array()用於數組的數組

[英]in_array() for array of array

是否有像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()就是我正在尋找的那種函數(避免循環)為空。

使用此函數,因為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

順便說一句,它沒有避免第一個,而是避免了最后一個有“ ac”的。 所以您從前兩個開始就可以了。 您的代碼有效,但是我不確定這是否是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM