我在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中使用什么功能,以便在不更改键值的情况下获得以下输出?
答案 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
}
}
这样你根本不需要做任何合并。