通过保留数组php,在不更改键值的情况下合并两个数组


Merging two arrays without changing key values by keeping array php

我在php中有树数组,如代码所示

<?php
//old array
$oldArray = array(0 => 11, 1 => 18, 2 => 29, 3 => 35, 4 => 40);
// held values
$hold = array( 1 => 18, 3 => 35);
// new random generated array
$newValues = array( 0 => 27, 1 => 31, 2 => 38);

//I need keep keys (order, index) of $hold values
newArrayMergedPushed = array(0 => 27, 1 => 18, 2 => 31, 3 => 35, 4 => 38);
?>

我需要保持$hold数组的顺序相同,索引类似于$oldArray。我可以在php中使用什么函数,以便在不更改键值的情况下获得以下输出?

如果我猜你想正确地做什么,最好直接对你想更改的数组进行操作,而不是先创建一个范围,然后再尝试将它们混合回来。

只保留要保留在查找表中的索引,然后在表上循环并替换任何未保留的键值=>。

$oldArray = array(0 => 11, 1 => 18, 2 => 29, 3 => 35, 4 => 40);
$hold = array( 1 => true, 3 => true);
for( $i = 0; $i < count($oldArray); $i ++ ) {
  if( !isset( $hold[$i] ) ) {
    $oldArray[$i] = mt_rand(0,100); // or whatever you do to generate random numbers
  }
}

这样你就不必进行任何合并了。