2009-09-03 13 views
89

क्या शाब्दिक कुंजी => मूल्य जोड़े के साथ एक सहयोगी सरणी को प्रीपेड करना संभव है? मुझे पता है कि array_unshift() संख्यात्मक कुंजी के साथ काम करता है, लेकिन मुझे कुछ ऐसा उम्मीद है जो शाब्दिक कुंजी के साथ काम करेगी।PHP शाब्दिक कुंजी के साथ सहयोगी सरणी preend?

एक उदाहरण मैं निम्नलिखित करना चाहते हैं के रूप में:

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

// prepend magic 

$resulting_array = ('fruit1'=>'cherry', 
        'fruit2'=>'blueberry', 
        'fruit3'=>'apple', 
        'fruit4'=>'orange'); 

उत्तर

172

तुम सिर्फ नहीं कर सकते:

$resulting_array = $array2 + $array1; 

?

+13

+ ऑपरेटर का उपयोग करने से array_merge() और इसके अंतर को भी देखें: http://br.php.net/manual/en/function.array-merge.php#92602 – Havenard

+2

@cletus: शीश। हाँ, मैं कर सकता हूँ। यकीन नहीं है कि मुझे क्या लगता है कि मैं नहीं कर सकता था या पहले क्या काम नहीं कर रहा था। जवाब के लिए धन्यवाद। –

+1

@ हेवनर्ड: अतिरिक्त जानकारी के लिए धन्यवाद। –

4

@Cletus स्थान पर है। बस जोड़ने के लिए, यदि इनपुट सरणियों में तत्वों के आदेश अस्पष्ट हैं, और आप अंतिम सरणी हल हो की जरूरत है, तो आप ksort करना चाह सकते हैं:

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

@karim: यह सहायक है - धन्यवाद। –

+4

देर से नोट के रूप में, 'ksort' बूलियन लौटाता है, इसलिए उपर्युक्त दो बयानों के रूप में नहीं किया जाना चाहिए, उदाहरण के लिए '$ ए = $ array1 + $ array2; ksort ($ a); ', अन्यथा '$ result_array' एक बूलियन वैल्यू नहीं होगा, जिस सरणी की आप उम्मीद कर रहे थे। –

13

अपनी स्थिति में, आप array_merge उपयोग करने के लिए (चाहते हैं):

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

array_unshift() के बजाय एक साहचर्य सरणी के लिए एक एकल मूल्य पहले जोड़ें करने के लिए, फिर से array_merge) का उपयोग (:

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

जवाब नहीं है। आप एक कुंजी-मूल्य जोड़ी के साथ एक सहयोगी सरणी प्रीपेड नहीं कर सकते हैं।

हालांकि आप एक नई सरणी बना सकते हैं जिसमें यूनियन ऑपरेटर + के साथ सरणी की शुरुआत में नई कुंजी-मूल्य जोड़ी शामिल है। परिणाम एक पूरी तरह से नई सरणी है हालांकि नई सरणी बनाने के लिए ओ (एन) जटिलता है।

वाक्यविन्यास नीचे है।

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

नोट: array_merge() का उपयोग न करें। array_merge() कुंजी ओवरराइट करता है और संख्यात्मक कुंजी को सुरक्षित नहीं करता है।

संबंधित मुद्दे