+ оператор для множества в PHP?

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

Что делает + средний для множества в PHP?

186
задан user198729 26 January 2010 в 04:46
поделиться

3 ответа

цитирование из руководства PHP на языковых операторах

Оператор + возвращает правый массив, добавленный к левому массиву; Для ключей, которые существуют в обоих массивах, будут использоваться элементы из левого массива, и соответствующие элементы из правого массива будут игнорироваться.

Итак, если вы будете делать

$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;
    }
}

, если вы заинтересованы в деталях реализации уровня C Голова до


Примечание, что + отличается от того, как 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
)

см. Связанные страницы для получения дополнительных примеров.

259
ответ дан 23 November 2019 в 05:50
поделиться

Он добавит новый массив к предыдущему.

-2
ответ дан 23 November 2019 в 05:50
поделиться

Этот оператор принимает объединение двух массивов (то же самое, что и array_merge, за исключением того, что при дублировании ключей array_merge перезаписываются).

Документация по операторам массивов находится здесь .

6
ответ дан 23 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: