我有这个代码:
$array = [0, 1, 2];
for($i = 0; $i <= 2; $i++){
$filtered = array_filter($array, function($elem) use ($i){
return ($elem == $i);
});
var_dump($filtered);
}
结果如下:
array (size=1)
0 => 0
array (size=1)
1 => 1
array (size=1)
2 => 2
我的问题是为什么我得到$filtered
结果的不同索引?!!
结果应该是这样的:
array (size=1)
0 => 0
array (size=1)
0 => 1
array (size=1)
0 => 2
答案 0 :(得分:-1)
只需用array_filter()
包装array_values()
。让我们这样尝试吧-
<?php
$array = [0, 1, 2];
for($i = 0; $i <= 2; $i++){
$filtered = array_values(array_filter($array, function($elem) use ($i){
return ($elem == $i);
}));
var_dump($filtered);
}