PHP में सरणी के लिए ऑपरेटर?




arrays (7)

$test = array('hi');
$test += array('test','oh');
var_dump($test);

PHP में सरणी के लिए + क्या मतलब है?


$var1 = "example";
$var2 = "test";
$output = array_merge((array)$var1,(array)$var2);
print_r($output);

ऐरे ([0] => उदाहरण [1] => परीक्षण)


documentation से उद्धरण

+ ऑपरेटर बाएं हाथ की सरणी में संलग्न दाएं हाथ की सरणी देता है; दोनों सरणी में मौजूद कुंजियों के लिए, बाएं हाथ वाले सरणी के तत्वों का उपयोग किया जाएगा, और दाईं ओर वाले सरणी के मिलान तत्वों को अनदेखा कर दिया जाएगा।

तो अगर आप करते हैं

$array1 = ['one',   'two',          'foo' => 'bar'];
$array2 = ['three', 'four', 'five', 'foo' => 'baz']; 

print_r($array1 + $array2);

तुम्हे मिल जाएगा

Array
(
    [0] => one   // preserved from $array1 (left-hand array)
    [1] => two   // preserved from $array1 (left-hand array)
    [foo] => bar // preserved from $array1 (left-hand array)
    [2] => five  // added from $array2 (right-hand array)
)

तो + का तर्क निम्न स्निपेट के बराबर है:

$union = $array1;

foreach ($array2 as $key => $value) {
    if (false === array_key_exists($key, $union)) {
        $union[$key] = $value;
    }
}

यदि आप सी-स्तरीय कार्यान्वयन के विवरण के विवरण में रूचि रखते हैं

ध्यान दें, कि + array_merge() सरणी को गठबंधन करने से अलग है:

print_r(array_merge($array1, $array2));

आपको दे देंगे

Array
(
    [0] => one   // preserved from $array1
    [1] => two   // preserved from $array1
    [foo] => baz // overwritten from $array2
    [2] => three // appended from $array2
    [3] => four  // appended from $array2
    [4] => five  // appended from $array2
)

अधिक उदाहरणों के लिए लिंक किए गए पेज देखें।


यह पिछले के लिए नई सरणी जोड़ देगा।


+ ऑपरेटर array_replace() के समान परिणाम उत्पन्न करता है। हालांकि ऑपरेटर तर्कों को उलट दिया जाता है, इसलिए परिणामी सरणी का क्रम भी अलग हो सकता है।

इस पृष्ठ से दूसरे उदाहरण पर विस्तार करना:

$array1 = array('one', 'two', 'foo' => 'bar');
$array2 = array('three', 'four', 'five', 'foo' => 'baz'); 

print_r($array1 + $array2);
print_r(array_replace($array2, $array1)); //note reversed argument order

आउटपुट:

Array
(
    [0] => one   // preserved from $array1
    [1] => two   // preserved from $array1
    [foo] => bar // preserved from $array1
    [2] => five  // added from $array2
)
Array
(
    [0] => one   // preserved from $array1
    [1] => two   // preserved from $array1
    [2] => five  // added from $array2
    [foo] => bar // preserved from $array1
)

इसका उपयोग करने के लिए मैंने पाया सबसे अच्छा उदाहरण कॉन्फ़िगरेशन सरणी में है।

$user_vars = array("username"=>"John Doe");
$default_vars = array("username"=>"Unknown", "email"=>"[email protected]");

$config = $user_vars + $default_vars;

$default_vars , जैसा कि यह सुझाव देता है, डिफ़ॉल्ट मानों के लिए सरणी है। $user_vars सरणी $default_vars में परिभाषित मानों को ओवरराइट कर देगी। $user_vars में कोई भी गुम मूल्य अब डिफ़ॉल्ट_वर्स से डिफ़ॉल्ट $user_vars हैं।

यह print_r रूप में होगा:

Array(2){
    "username" => "John Doe",
    "email" => "[email protected]"
}

आशा है कि ये आपकी मदद करेगा!


यह ऑपरेटर दो एरे का संघ लेता है (array_merge के समान, सिवाय इसके कि array_merge डुप्लिकेट कुंजी ओवरराइट किए गए हैं)।

सरणी ऑपरेटरों के लिए प्रलेखन documentation पाया जाता documentation


संख्यात्मक कुंजी के साथ सावधान रहें, अगर उन्हें संरक्षित किया जाना चाहिए या यदि आप कुछ भी खोना नहीं चाहते हैं

$a = array(2 => "a2", 4 => "a4", 5 => "a5");
$b = array(1 => "b1", 3 => "b3", 4 => "b4");

संघ

print_r($a+$b);
Array
(
    [2] => a2
    [4] => a4
    [5] => a5
    [1] => b1
    [3] => b3
)

विलय

print_r(array_merge($a, $b));
Array
(
    [0] => a2
    [1] => a4
    [2] => a5
    [3] => b1
    [4] => b3
    [5] => b4
)






arrays