[PHP-users 19695]Re: 配列の任意の位置への要素の挿入

T.Okabe okabe @ nsd.jip.co.jp
2004年 1月 5日 (月) 17:41:25 JST


岡部といいます。

>k-wataと申します。
>
>array_spliceはどうでしょう?
>http://jp.php.net/manual/ja/function.array-splice.php
>
>しかし、連想配列だと・・・
>
><?php
>$input = array ( "red" => "red1", "green" => "green1", "blue" => 
"blue1",
>"yellow" => "yellow1");
>array_splice ($input, 1, 0, 'black');
>
>print_r($input);
>
>?>
>
>結果は、こんな感じになってしまいますが・・・。
>
>Array
>(
>    [red] => red1
>    [0] => black
>    [green] => green1
>    [blue] => blue1
>    [yellow] => yellow1
>)

$input = array("red" => "red1", "green" => "green1",
               "blue" => "blue1", "yellow" => "yellow1");
$input = array_merge( array_slice($input, 0, 1),
                      array("black" => "black1"),
                      array_slice($input, 1) );

とするのはどうでしょう?
処理速度上の優劣はわかりませんが、論理的には便利と思います。
挿入先配列とoffsetと挿入配列を引数に取る簡単な関数にも出来ますね。


PHP-users メーリングリストの案内