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);