На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.
К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).
В результате стандартная комиссия ISO C ++ решила удалить export
особенность шаблонов, начинающихся с C ++ 11.
Когда пост будет обновлен, я предполагаю, что вы можете получить идентификатор этого поста.
Затем вы можете проверить, есть ли в вашей структуре данных ключ «комментарии». Если это не так, добавьте ключ и создайте массив, содержащий комментарий и пользователя в качестве первого массива.
Если он уже существует, добавьте новый массив с пользователем и комментарием, чтобы в каждом посте было несколько комментариев.
Например, используя 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);
Если бы у вас был какой-либо связанный ключ между постами и комментариями (например, наличие 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;
}
Итак, я исправил это, немного подумав
Это окончательная структура:
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.
Надеюсь, это кому-нибудь поможет.