Как ввести новый ключ, связанный с новым значением в конце Многомерных массивов в PHP
у Меня есть многомерный массив со следующей структурой ниже:
Array
(
[0] => Array
(
[id] => 1877
[type_id] => 4
[service_id] => 1100
)
[1] => Array
(
[id] => 2299
[type_id] => 2
[service_id] => 1148
)
)
мне Нужно динамически вставить новый ключ, связанный со значением в конце каждого ключа массива, чтобы получить следующую структуру ниже):
Array
(
[0] => Array
(
[id] => 1877
[type_id] => 4
[service_id] => 1100
[nova_chave] => "Novo Valor" <---
)
[1] => Array
(
[id] => 2299
[type_id] => 2
[service_id] => 1148
[nova_chave] => "Novo Valor" <---
)
)
может Кто-нибудь помочь мне, как реализовать это решение в PHP?
3 answers
Есть несколько способов сделать это. Я оставлю двух примеров:
Первый пример:
<?php
$matriz = array(
array("id" => 1877,"type_id" => 4,"service_id" => 1100),
array("id" => 2299,"type_id" => 2,"service_id" => 1148)
);
$novo_1 = 1111;
//Inserindo o valor dinamicamente
for($i=0; $i < count($matriz); $i++)
{
$matriz[$i]["nova_chave"] = $novo_1;
}
echo "<pre>";
print_r($matriz);
echo "</pre>";
?>
Второй Пример:
<?php
$matriz_2 = array(
array("id" => 1877,"type_id" => 4,"service_id" => 1100),
array("id" => 2299,"type_id" => 2,"service_id" => 1148)
);
$novo_2 = ["nova_chave_2" => 2222];
//Inserindo a chave e o valor dinamicamente
for($i=0; $i < count($matriz_2); $i++)
{
foreach($novo_2 as $key => $value)
{
$matriz_2[$i][$key] = $value;
}
}
echo "<pre>";
print_r($matriz_2);
echo "</pre>";
?>
Проще, чем вы думаете. Просто использовать + с новый ключ и значение с помощью $arrayAssoc.
, Чтобы вставить новый ключ в начале:
foreach ($arrayAssoc $key => $value) {
$arrayAssoc[$key] = array('nova_chave'=> "novo_valor") + $arrayAssoc[$key];
}
, Чтобы вставить новый ключ, в конце концов:
foreach ($arrayAssoc $key => $value) {
$arrayAssoc[$key] = $arrayAssoc[$key]+ array('nova_chave'=> "novo_valor");
}
Таким образом, в случае, если он воплощал 'X' вопроса является тот факт, что в массиве значений не существует фиксированное имя для нового раздела, который будет добавлен в массив начального.
И Это стало бы решением:
foreach ($arrayAssociativo as $arr)
{
foreach ($arrayValores as $arrValor)
{
if ($arr['id'] === $arrValor['id'])
{
$arr = array_merge($arr, $arrValor);
}
}
}
И в Этом случае для каждой позиции, ваш ассоциативный массив начального проверяется все позиции вашего массива значений. Если какое-либо положение имеет тот же ИДЕНТИФИКАТОР в массив mergeados array_merge.
Учитывая, в структуру, которую вы сообщается, что массив значений всегда будет обладать только двумя ключами (id и новый ключ добавляется к), ключ id, если будет поддерживать новый ключ будет добавлена, рядом с их значением.