PHP выдвинуть массив в существующий массив по его индексу

На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.

К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).

В результате стандартная комиссия ISO C ++ решила удалить export особенность шаблонов, начинающихся с C ++ 11.

-1
задан kevinfromspace 16 January 2019 в 10:30
поделиться

3 ответа

Когда пост будет обновлен, я предполагаю, что вы можете получить идентификатор этого поста.

Затем вы можете проверить, есть ли в вашей структуре данных ключ «комментарии». Если это не так, добавьте ключ и создайте массив, содержащий комментарий и пользователя в качестве первого массива.

Если он уже существует, добавьте новый массив с пользователем и комментарием, чтобы в каждом посте было несколько комментариев.

Например, используя array_map :

$blogPosts = array_map(function ($blogPost) use ($blogPostId, $comment) {
    if ($blogPost["id"] === $blogPostId) {
        isset($blogPost["comments"]) ? $blogPost["comments"][] = $comment : $blogPost["comments"] = [$comment];
        return $blogPost;
    }
    return $blogPost;

}, $blogPosts);

Php demo

0
ответ дан The fourth bird 16 January 2019 в 10:30
поделиться

Если бы у вас был какой-либо связанный ключ между постами и комментариями (например, наличие post_id в массиве комментариев), то имело бы больше смысла объединять / помещать их.

Я предполагаю, что это ваш пост

 Array
    (
        [0] => Array
            (
                [id] => 0
                [title] => first blogpost
                [content] => blogpost text
            )

        [1] => Array
            (
                [id] => 1
                [title] => second blogpost
                [content] => blogpost 2 text
            )
    )

И ваши комментарии должны быть такими:

 Array
    (
        [user] => myusername
        [comment] => first post was better!
        [post_id] => 1
    )

Таким образом, вы сможете найти подходящую запись блога.

Но за пределами вашей структуры данных приведен пример объединения элемента в элемент массива массива.

Пример вложенного цикла.

foreach($posts as &$post){
     foreach($comments as $comment){
        if($post['id'] == $comment['post_id']){
            $post['comments'][] = $comment;
        }
     }
}

ключом здесь является отправка каждой ссылки элемента в цикл с помощью &$post, а затем просто манипулирование ими в цикле.

Работа с индексированными массивами. (Как будто у вас уже есть имена индексов как post_id и индекс комментариев как пустой массив)

foreach($comments as $comment){
    $posts[$comment['post_id']]['comments'][]  = $comment;
}
0
ответ дан Tufan Barış Yıldırım 16 January 2019 в 10:30
поделиться

Итак, я исправил это, немного подумав

Это окончательная структура:

Array
(
[0] => Array
    (
        [id] => 0
        [title] => 1st post
        [content] => 1st post works!
        [date] => 21-01-2019
        [comments] => Array
            (
                [0] => Array
                    (
                        [user] => Me
                        [comment] => hey 1
                        [date] => 12:02 21-01-2019
                    )

                [1] => Array
                    (
                        [user] => Me
                        [comment] => hey 2
                        [date] => 12:03 21-01-2019
                    )

            )

    )
)

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

Это код, я должен упомянуть, что идентификатор находится в URL, и он сохранен как JSON:

$filename = file.json;
$currentArray = json_decode(file_get_contents($filename), true);

$comment = 

Итак, я исправил это, немного подумав

Это окончательная структура:

[110]

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

Это код, я должен упомянуть, что идентификатор находится в URL, и он сохранен как JSON:

[111]

Пока довольно просто, вот как создается массив:

[112 ]

[$ id] сохраняет его в правильном сообщении, ["comments"] сохраняет его в ключе комментариев (или создает его), а последний [] присваивает каждому комментарию отдельный индекс внутри ["comments"].

$newJSON = json_encode($currentArray, JSON_PRETTY_PRINT);
file_put_contents($filename, $newJSON);

И, наконец, его кодирование и сохранение в JSON.

Надеюсь, это кому-нибудь поможет.

POST['comment']; $username =

Итак, я исправил это, немного подумав

Это окончательная структура:

[110]

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

Это код, я должен упомянуть, что идентификатор находится в URL, и он сохранен как JSON:

[111]

Пока довольно просто, вот как создается массив:

[112 ]

[$ id] сохраняет его в правильном сообщении, ["comments"] сохраняет его в ключе комментариев (или создает его), а последний [] присваивает каждому комментарию отдельный индекс внутри ["comments"].

$newJSON = json_encode($currentArray, JSON_PRETTY_PRINT);
file_put_contents($filename, $newJSON);

И, наконец, его кодирование и сохранение в JSON.

Надеюсь, это кому-нибудь поможет.

SESSION['username']; $date = date("H:i d-m-Y"); $id =

Итак, я исправил это, немного подумав

Это окончательная структура:

[110]

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

Это код, я должен упомянуть, что идентификатор находится в URL, и он сохранен как JSON:

[111]

Пока довольно просто, вот как создается массив:

[112 ]

[$ id] сохраняет его в правильном сообщении, ["comments"] сохраняет его в ключе комментариев (или создает его), а последний [] присваивает каждому комментарию отдельный индекс внутри ["comments"].

$newJSON = json_encode($currentArray, JSON_PRETTY_PRINT);
file_put_contents($filename, $newJSON);

И, наконец, его кодирование и сохранение в JSON.

Надеюсь, это кому-нибудь поможет.

GET['id'];

Пока довольно просто, вот как создается массив:

[112 ]

[$ id] сохраняет его в правильном сообщении, ["comments"] сохраняет его в ключе комментариев (или создает его), а последний [] присваивает каждому комментарию отдельный индекс внутри ["comments"].

$newJSON = json_encode($currentArray, JSON_PRETTY_PRINT);
file_put_contents($filename, $newJSON);

И, наконец, его кодирование и сохранение в JSON.

Надеюсь, это кому-нибудь поможет.

0
ответ дан kevinfromspace 16 January 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: