Как добавить новую пару ключ-значение для каждого объекта в многомерном массиве PHP? - PullRequest
0 голосов
/ 03 декабря 2018

Мне нужно отобразить существующий многомерный массив и условно добавить новый элемент в каждый объект массива.

Если исходный массив равен:

Array
(
[0] => Array
    (
        [id] => 4
        [uid] => 1
        [name] => Dave Spicer
        [content] => another post
        [post_date] => 2018-12-03 00:02:26
    )

[1] => Array
    (
        [id] => 3
        [uid] => 2
        [name] => John Doe
        [content] => some post
        [post_date] => 2018-12-03 00:02:21
    )

[2] => Array
    (
        [id] => 1
        [uid] => 1
        [name] => Dave Spicer
        [content] => My first post!
        [post_date] => 2018-12-02 23:21:07
    )

)

Я бы хотелвыполнить цикл, условно добавив новую пару значений ключа к каждому объекту массива, что приведет к созданию нового массива, подобного следующему:

Array
(
[0] => Array
    (
        [id] => 4
        [uid] => 1
        [name] => Dave Spicer
        [content] => another post
        [post_date] => 2018-12-03 00:02:26
        [liked] => YES
    )

[1] => Array
    (
        [id] => 3
        [uid] => 2
        [name] => John Doe
        [content] => some post
        [post_date] => 2018-12-03 00:02:21
        [liked] => NO
    )

[2] => Array
    (
        [id] => 1
        [uid] => 1
        [name] => Dave Spicer
        [content] => My first post!
        [post_date] => 2018-12-02 23:21:07
        [liked] => YES
    )

)

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

Я попытался скопировать массив и запустить цикл foreach, но смог добавить только одну новую пару ключ-значение в самом конце всехмассивов в качестве нового объекта массива.

Может ли кто-нибудь указать мне направление правильных функций, которые следует использовать здесь, пожалуйста?array_merge?array_combine?array_push?и т.д.

1 Ответ

0 голосов
/ 03 декабря 2018

Вы добавляете элемент в массив, просто назначая индекс.

foreach ($array as $i => $element) {
    $array[$i]['liked'] = get_like($element);
}

Вы также можете использовать ссылочную переменную в цикле foreach:

foreach ($array as $i => &$element) {
    $element['liked'] = get_like($element);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...