I have this code:
$array = [0, 1, 2];
for($i = 0; $i <= 2; $i++){
$filtered = array_filter($array, function($elem) use ($i){
return ($elem == $i);
});
var_dump($filtered);
}
The result is the following:
array (size=1)
0 => 0
array (size=1)
1 => 1
array (size=1)
2 => 2
My question is why I get different index for the $filtered
result ?!!
The result should be like this:
array (size=1)
0 => 0
array (size=1)
0 => 1
array (size=1)
0 => 2
Just wrap your array_filter()
with array_values()
. Let's try like this way-
<?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);
}
DEMO: https://3v4l.org/X1iSF