PHPのarray_columnが微妙に使いにくいと思った話。
配列の中身を串刺しにして取り出す array_column という関数があるのだが、
あまねみさん的にはこの関数が微妙に使いにくい。
なぜかと言うとこの関数、もとの配列のキーを参照しないで、インデックスの振り直しをしてしまうのだ。そのため、可逆性を保つためにいちいちidを振っておかなくてはいけない。
そこで、以下のような類似関数を作ったので提示しておく。
function my_array_column($array, $needle, $id = false){
$return = array();
foreach($array as $k => $line){
if(isset($line[$key])){
if($id!==false){
if(isset($line[$id])){
$return[$line[$id]] = $line[$key];
}
} else {
$return[$k] = $line[$key];
}
}
}
return $return;
}
array_columnと同じ結果を得たければ、第3引数ありはそのまま。
第3引数なしなら、
array_values(my_array_column($array, $needle));
とすれば良い。
いや、そのまま array_column 使えよ。