通过保持数组php来合并两个数组而不更改键值

时间:2014-11-12 10:07:52

标签: php arrays

我在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中使用什么功能,以便在不更改键值的情况下获得以下输出?

1 个答案:

答案 0 :(得分:0)

如果我猜测你想要做什么,最好直接在想要改变的阵列上进行操作,而不是首先创建一个范围,然后再尝试将它们混合起来。 / p>

仅保留要保留在查找表中的索引,然后循环遍历表并替换未保留的任何key =&gt;值。

$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
  }
}

这样你根本不需要做任何合并。