(連想)配列をフラットにする
function array_flatten($arr, $key = null) { $tmp = []; if (is_array($arr)) foreach ($arr as $key => $value) $tmp = array_merge($tmp, $this->__array_flatten($value, $key)); else { if (is_numeric($key)) $tmp[] = $arr; else $tmp[$key] = $arr; } return $tmp; }
これで
array( array( '0' => array( 'foo' => 'bar' ), '1' => array( 'faa' => 'bee' ) ) );
という構造の(連想)配列が
array( 'foo' => 'bar', 'faa' => 'bee' );
とフラット化する。ただの配列の値については0から始まる連番がキーに割り当てられる。
連想配列で同じキーの値があった時に、後方の値が優先される(前方の値が後方の値によって上書きされる)ことに注意。