+ PHP dizisi için operatör?

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

+ PHP dizisi için ne anlama geliyor?

8 Cevap

Bu temelde anlamına gelir array_merge() , with the difference that duplicate keys will not . This can array_merge olsa, örneğin, oldukça farklı görünüyor yazılır

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

çıkışlar:

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
    [foo] => baz // overwritten from $array2
    [2] => three // appended from $array2
    [3] => four  // appended from $array2
    [4] => five  // appended from $array2
)

Daha fazla örnek için bağlı sayfaya bakınız.

Çoğaltılamaz tuşları üzerine DEĞİLDİR ise + operatörü, teslim sola sağ elini diziden kalan tuşları öğeleri ekler.

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>

Çalıştırıldığında, bu komut aşağıdaki basacaktır:

Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Union of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

tam değil gibi array_merge

Diziler için artı işareti '+' tek boyutludur ve basit diziler için uygundur unutmayın.

Daha fazla okuyun:

http://www.vancelucas.com/blog/php-array_merge-preserving-numeric-keys/

(Array_merge yinelenen anahtarlar üzerine yazılır ile haricinde array_merge aynı) Bu operatör iki diziler birliği alır.

Dizi operatörleri için belgeleri bulunur here.

Ben bu kullanmak için bulunan en iyi örnek bir yapılandırma dizi olduğunu.

$user_vars = array("username"=>"John Doe");
$default_vars = array("username"=>"Unknown", "email"=>"no-reply@domain.com");

$config = $user_vars + $default_vars;

The $default_vars, as it suggests, is the array for default values. The $user_vars array will overwrite the values defined in $default_vars. Any missing values in $user_vars are now the defaults vars from $default_vars.

Bu print_r gibi:

Array(2){
    "username" => "John Doe",
    "email" => "no-reply@domain.com"
}

Bu yardımcı olur umarım!

Bu önceki yeni bir dizi ekler.

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

Array ([0] => örnek [1] => Test)

Bir şey gevşek istemiyorsanız onlar korunmuş olmalıdır eğer, sayısal tuşları ile dikkatli veya

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

sendika

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

birleşmek

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

+ operatörü array_replace() olarak aynı sonuçları üretir. Bununla birlikte, operatör değişkenleri tersine olduğundan, sonuçta elde edilen dizinin sipariş da farklı olabilir.

Bu sayfadan başka bir örnek üzerinde genişletilmesi:

$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

çıkışlar:

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
)