Добавление ключа / значения в существующий массив

Я пытаюсь добавить новый ключ / значение в существующий массив. У меня трудности, потому что я видел другие ответы, но не работал.

Это мой массив в JSON:

[
{
accountId: "*****",
containerId: "******",
name: "Container23",
},
{
accountId: "**",
containerId: "*",
name: "Container2"},
{
accountId: "*",
containerId: "*",
name: "Container1",
}
]

Другой ответ говорит, что я должен сделать это:

$containers[] = $account['name'];

Но дает мне неверный результат, это не добавление нового значения в существующий объект ключ / значение json, а добавление его поверх этого следующим образом:

"Account2",                          <------- ??
{
accountId: "1746756959",
Name: "Account2",                    <---- Here is where i want to add it
name: "Container2"},

Это мой код в PHP:

  static public function listAllContainers() {
$containers = array();
foreach (self::listAccounts()->account as $account) {
foreach (self::listAccountsContainers($account["path"]) as $container) {
$containers[] = $container;
//$containers[] = $account['name'];        <--- Dont work
}
}
return $containers;
}

РЕДАКТИРОВАТЬ:
введите описание изображения здесь

1

Решение

Попробуй это,

static public function listAllContainers() {
$containers = array();
foreach (self::listAccounts()->account as $accountKey => $account) {
foreach (self::listAccountsContainers($account["path"]) as $container) {
$containers[$account['name']][] = $container;
}
}
return $containers;
}
1

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

Вероятно, это не правильный способ решить вашу проблему, но это весело

$json_data = '[
{
"accountId": "*****",
"containerId": "******",
"name": "Container23"},
{
"accountId": "**",
"containerId": "*",
"name": "Container2"},
{
"accountId": "*",
"containerId": "*",
"name": "Container1"}
]';

Быстрый и грязный способ

$key='newKey';
$val='newVal';
json_decode(str_replace('{','{"'.$key.'":"'.$val.'",',$json_data));
0

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