1

質問は簡単です。次のような配列があるとしましょう。

$array = array(array('bla1' => 'bla1'), array('bla2' => 'bla2'),
    array('bla3' => 'bla3'), array('bla4' => 'bla4'));

ええ、それは多次元なので、たとえばarray('bla1' =>'bla1')array('bla2' =>'bla2')の間に値を設定する必要があります。

phpのすべてのarray_like関数を使用して、これを行う方法を見つけるのに戸惑いました。

したがって、他のプログラマーと同じように、私は次の関数を作成しました。

function setArrVal($array, $key, $val) {
  for ($i = count($array) - 1; $i >= $key; $i--) {
    $array[$i + 1] = $array[$i];
  }
  $array[$key] = $val;    
  return $array;
}

うまく機能します。しかし、それでもphp関数でこれを行う必要があります。これをそのように完了する方法はありますか?array_splice($ input、1、0、$ replace);を試しました。-価値がない、それは単純な値でのみ機能し、配列内の配列では機能しません。

4

1 に答える 1

1

array_splice()次のように使用できます。

$array = array(array('bla1' => 'bla1'), array('bla2' => 'bla2'),
    array('bla3' => 'bla3'), array('bla4' => 'bla4'));

$insert = array(array('bla2.5' => 'bla2.5'));

// note the third argument argument is 0
// this will prevent it from overwriting existing values
array_splice($array, 2, 0, $insert ); 

print_r($array);

/* Result */
Array
(
    [0] => Array
        (
            [bla1] => bla1
        )

    [1] => Array
        (
            [bla2] => bla2
        )

    [2] => Array
        (
            [bla2.5] => bla2.5
        )

    [3] => Array
        (
            [bla3] => bla3
        )

    [4] => Array
        (
            [bla4] => bla4
        )

)

デモ: http://codepad.org/ivBmZRdn

これはあなたが望んでいたものですか?

于 2012-10-13T07:22:04.493 に答える