私は次のコードを使用していますが、この少しですべてがうまくいくようです。
$colors = array('red', 'yellow', 'blue');
$replacements = array('yellow' => array(1, 1), 'blue' => array('black','orange'));
foreach ($replacements as $color => $replace) {
$position = array_search($color, $colors);
array_splice($colors, $position, 1, $replace);
}
$colors の結果:
Array
(
[0] => red
[1] => 1
[2] => 1
[3] => black
[4] => orange
)
ここで私は問題を抱えています。$replacements 配列を次のように単純に変更した場合 (黄色の配列値が変更されていることに注意してください):
$replacements = array('yellow' => array(0, 1), 'blue' => array('black','orange'));
コードを再度実行すると、次の望ましくない結果が得られます。
Array
(
[0] => red
[1] => black
[2] => orange
[3] => 1
[4] => blue
)
上記の結果は、私が期待するものではありません。ゼロ (0) の値が渡されると、array_splice 関数に何らかの問題が発生しているようです。
望ましい結果は次のようになります。
Array
(
[0] => red
[1] => 0
[2] => 1
[3] => black
[4] => orange
)
何がうまくいかないのか、どうすれば修正できるのでしょうか?