読者です 読者をやめる 読者になる 読者になる

array_filterで抜き出した配列の添字が連番にならない

FuelPHP

こんな感じにarray_filterで抽出した配列に対して、0から添字アクセスがしたかった。
だが想定通りの処理にならない。

<?php
$filteredList =array_filter($list, function ($x){return $x==1;});
?>

FuelPHPのDebug::dumpで配列の中身を見てみると添字が飛び飛びになっていた。
そういえばPHPのarrayは配列っぽいけど、連想配列としても使えるのだということを忘れていた。

f:id:hkou:20150121094637p:plain

解決策はarray_valuesで再度配列に連番を振りなおしてやれば良い

<?php
$filteredList =array_values(array_filter($list, function ($x){return $x==1;}));
?>