Вставить элемент в каждый ассоциативный массив в переполнении стека

function array_push_multi_assoc($array, $key, $key2, $value){
$array[$key][$key2] = $value;
return $array;
}

$myarray = array_push_multi_assoc($myarray, $key=0, 'subject', 'hello');

print_r($myarray);

Array
(
[0] => Array
(
[id] => 97
[email] => vikastyagismartbuzz8@gmail.com
[subject] => hello
)

[1] => Array
(
[id] => 93
[email] => vikastyagi87@gmail.com
)

[2] => Array
(
[id] => 94
[email] => vikastyagismartbuzz9@gmail.com
)

)

Я хочу что-то подобное:

Array
(
[0] => Array
(
[id] => 97
[email] => vikastyagismartbuzz8@gmail.com
[subject] => hello
)

[1] => Array
(
[id] => 93
[email] => vikastyagi87@gmail.com
[subject] => hello
)

[2] => Array
(
[id] => 94
[email] => vikastyagismartbuzz9@gmail.com
[subject] => hello
)

)

0

Решение

array_map может быть использован для создания нового массива после применения функции к существующему:

$newArray = array_map(function($row) {
$row['subject'] = 'hello';
return $row;
}, $oldArray);

Или использовать array_walk манипулировать существующим:

array_walk($oldArray, function(&$row) {
$row['subject'] = 'hello';
});

Обратите внимание, что вы можете переписать любую из этих функций таким образом, что это будет означать, что их роли поменялись местами (например, построение нового массива с помощью array_walk), но приведенные выше примеры показывают, как следует использовать каждую из них.

1

Другие решения

Хотя это могло быть достигнуто с помощью проходных элементов, более применимым и мощным способом является использование array_map:

array_map(function($item) { $item['subject'] = 'hello'; }, $array)

Надеюсь, поможет.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector