Php assigns an empty key of an ordered array an array =>
$arr = array( '0' => 'a value', '1' => 'a value', '2' => 'a value', '4' => 'a value', '5' => 'a value', '7' => 'a value', '10' => 'a value', '11' => 'a value', '12' => 'a value', );
At the same time, I have
$num
Assume that
$num=15
Now, I want to get this array =>
$arr = array( '0' => 'a value', '1' => 'a value', '2' => 'a value', '3' => 'kong', '4' => 'a value', '5' => 'a value', '6' => 'kong', '7' => 'a value', '8' => 'kong', '9' => 'kong', '10' => 'a value', '11' => 'a value', '12' => 'a value', '13' => 'kong', '14' => 'kong', '15' => 'kong', );
Is there any convenient and fast way to generate this array?
Reply to discussion (solution)
$ Arr = array ('0' => 'A value', '1' => 'A value', '2' => 'A value ', '4' => 'A value', '5' => 'A value', '7' => 'A value', '10' => 'A value ', '11' => 'A value', '12' => 'A value',); $ num = 15; $ tmp = range (0, $ num ); $ keys = array_keys ($ arr); $ kongArr = array_fill_keys (array_diff ($ tmp, $ keys), 'Kong '); // because it is a digital index, if array_merge is used, indexes are re-indexed and cannot be sorted by foreach ($ kongArr as $ k => $ v) {$ arr [$ k] = $ v;} ksort ($ arr ); echo"";print_r($arr);echo "
"; /* Array ([0] => a value [1] => a value [2] => a value [3] => kong [4] => a value [5] => a value [6] => kong [7] => a value [8] => kong [9] => kong [10] => a value [11] => a value [12] => a value [13] => kong [14] => kong [15] => kong) */
Not that complicated
$arr = array( '0' => 'a value', '1' => 'a value', '2' => 'a value', '4' => 'a value', '5' => 'a value', '7' => 'a value', '10' => 'a value', '11' => 'a value', '12' => 'a value',);$num = 15;$b = $arr + array_fill(0, $num+1, 'kong');ksort($b);print_r($b);
Array( [0] => a value [1] => a value [2] => a value [3] => kong [4] => a value [5] => a value [6] => kong [7] => a value [8] => kong [9] => kong [10] => a value [11] => a value [12] => a value [13] => kong [14] => kong [15] => kong)