Как назначить значения ассоциативного Массива в php?


В массив, например:

$arr = array('item1', 'item2' ... 'itemN');

я Хочу присвоить значение каждого элемента. Для этого, пробовал foreach:

foreach($arr as $a => $b)
    $b = 4;

Но это проинформированы IDE (phpStorm), что локальная переменная не используется; (unused local variable '$b')

Как я придаю значение элемента этого массива??

Author: Marcelo Diniz, 2016-09-21

2 answers

Сделать назначение, передав ключ, то это служит как для массивов associativos как númericos. Тогда просто подберите ключ ($key), массив и присвоить новое значение.

foreach($arr as $key => $value){
    $arr[$key] = 'novo valor';
}

print_r($arr);
 2
Author: rray, 2016-09-21 15:01:35

Другой способ, еще, что с помощью ссылки.

foreach ($arr as $key => &$value) {
    $value = 'novo valor';
}

unset($value); // Tem que apagar, pois o último sempre fica como referência.

При использовании сигнала &$value, значение прошлого для текущей итерации foreach будет указывать значение исходной array, однако в качестве ссылки. Если вы изменить его текущее значение, указал также будет изменен.

Обратите Внимание, что в конце я использовал unset, ибо, если не сделать так, при изменении значения $value из foreach, последний элемент $arr будет изменен.

 1
Author: Wallace Maxters, 2016-09-21 15:04:14