[英]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.