PHP prepend关联数组与文字键?

是否有可能预先关联数组与文字键=>值对? 我知道array_unshift()与数字键一起工作,但我希望可以使用文字键的东西。

作为一个例子,我想要做到以下几点:

$array1 = array('fruit3'=>'apple', 'fruit4'=>'orange'); $array2 = array('fruit1'=>'cherry', 'fruit2'=>'blueberry'); // prepend magic $resulting_array = ('fruit1'=>'cherry', 'fruit2'=>'blueberry', 'fruit3'=>'apple', 'fruit4'=>'orange'); 

你不能只是做:

 $resulting_array = $array2 + $array1; 

答案是不。 您不能用键 – 值对预先join关联数组。

但是,您可以使用联合运算符+创build一个新的数组,其中包含数组开头的新键 – 值对。 结果是一个全新的arrays,而创build新的arrays具有O(n)的复杂性。

语法如下。

 $new_array = array('new_key' => 'value') + $original_array; 

注意:不要使用array_merge()。 array_merge()覆盖键并不保留数字键。

在你的情况下,你想使用array_merge():

 array_merge(array('fruit1'=>'cherry', 'fruit2'=>'blueberry'), array('fruit3'=>'apple', 'fruit4'=>'orange')); 

要预先设置一个值,对于一个关联数组,而不是array_unshift(),再次使用array_merge():

 array_merge(array($key => $value), $myarray); 

@Cletus是现货。 只需要添加一下,如果input数组中元素的顺序不明确,并且需要对最终数组进行sorting,则可能需要ksort :

 $resulting_array = $array1 + $array2; ksort($resulting_array);