[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 メーリングリストの案内