Есть массив, например такой: [1 => 0, 3 => 0]. И есть еще один массив: [1, 2, 3]. Я хочу чтобы в результате получилось: [0 => 1, 1 => 0, 2 => 2, 3 => 0, 4 => 3]. Т.е. значения из второго массива вставляются на место пропущенных числовых ключей первого, а когда пропуски кончаются - то просто дописываются в конец. Подскажите как это сделать?
Оно? PHP: <?php function test($a, $b){ $resultArr = []; $count = (max(array_keys($a)) >= max(array_keys($b))) ? max(array_keys($a)) : max(array_keys($b)) ; for ($key=0; $key < $count+1; $key++) { if (isset($a[$key]) && isset($b[$key])) { $resultArr[] = $a[$key]; $resultArr[] = $b[$key]; }elseif (isset($a[$key]) && !isset($b[$key])) { $resultArr[] = $a[$key]; }elseif (!isset($a[$key]) && isset($b[$key])) { $resultArr[] = $b[$key]; }else{ //$resultArr[] = 'undefined'; continue; } } return $resultArr; } $arrOne = [1 => 0, 7 => 7, 3 => 0, 9 => 9]; $arrTwo = [1, 2, 3]; echo "<pre>"; print_r( test($arrOne, $arrTwo) ); echo "</pre>"; ?>
Нет. Ваш вывод: Код (Text): Array ( [0] => 1 [1] => 0 [2] => 2 [3] => 3 [4] => 0 [5] => 7 [6] => 9 ) А должно быть с вашими данными: Код (Text): Array ( [0] => 1 [1] => 0 [2] => 2 [3] => 0 [4] => 3 [7] => 7 [9] => 9 )