歯抜けになった配列を詰める
これで左から右へ、インデックスがきれいに並びます
foreach ($ary1 as $ary2[]){}
<?php $ary1 = array(0=>'a', 3=>'b', 4=>'c', 6=>'d', 9=>'e'); print_r($ary1); // Array ( [0] => a [3] => b [4] => c [6] => d [9] => e ) echo '<br />'; // 要素を詰めて格納 foreach ($ary1 as $ary2[]){} print_r($ary2); // Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
失敗例)
同じ変数同士で foreach ($ary1 as $ary1[]){}とすると、さらに後ろに追加されてしまいます
<?php foreach ($ary1 as $ary1[]){} print_r($ary1); // Array ( [0] => a [3] => b [4] => c [6] => d [9] => e [10] => a [11] => b [12] => c [13] => d [14] => e )
追記:
これが一番スマートそうですね。
array_merge($ary1)
[user@system ~]$ php -a Interactive shell php > print_r(array_merge(array(1=>'hoge', 3=>'fuga', 9=>'piyo'))); Array ( [0] => hoge [1] => fuga [2] => piyo )