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

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2004年 1月 5日 (月) 16:42:16 JST


いわきりです

Osamu Shigematsu wrote in <20040105155544.470C.SHIGE @ ravi.ne.jp> :
>基本的なことだとは思うのですが、念のために確認させてください。
>配列の任意の位置に要素の挿入は行えるのでしょうか?
>最初 (shift, unshift), 最後 (push, pop, []) のみ可能と思っています。

任意の位置に要素を追加する組込関数はありません。

連想配列しか無いので、適当に(前でも後ろでも)追加してから、
ksortってやるか、User Contributed Notesにあるarray_insert(), 
insert_into_array()ユーザ関数を使って実現するぐらいでしょうか。

array_insert()は、今のマニュアルからは消えているので、以下に
ソースを載せます。insert_into_array()は、array_splice()の
User Contributed Notesに載っているので見て下さい。


----------
05-Dec-2002 01:30

I noticed a lack of a function to insert a value into a specified place in an array.
Here'a a function I came up with that will do this:

function array_insert(&$array, $value, $pos)
{
    if (!is_array($array)) 
         return FALSE;

    $last = array_splice($array, $pos);

    array_push($array, $value);
    $array = array_merge($array, $last);
}

It can be used like this:

$a = array("zero", "one", "two", "three", "four", "five", "six", "seven", "eight");
array_insert($a, "POOP", 4);

The array will now contain:
("zero", "one", "two", "three", "POOP", "four", "five", "six", "seven", "eight")

-- 
Youichi Iwakiri



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