我不明白爲什麼這會爲我返回一個空數組。與array_filter混淆,即使明確檢查也忽略0值
$fruits = [
'apple' => 3,
'pear' => 5,
'orange' => 0
];
$filtered = array_filter($fruits, function($fruit) {
if ($fruit == 0) {
return $fruit;
}
});
var_dump($filtered); //array (size=0)
對於'orange',回調函數的計算結果爲true,但數組仍爲空。如果我專門爲其他任何人做,那麼它會正確返回。
$fruits = [
'apple' => 3,
'pear' => 5,
'orange' => 0
];
$filtered = array_filter($fruits, function($fruit) {
if ($fruit == 5) {
return $fruit;
}
});
var_dump($filtered);
// array (size=1)
// 'pear' => int 5
array_filter的回調函數必須返回'true',而不是'$ fruit' – WheatBeak