ОБНОВЛЕННЫЙ ОТВЕТ:
Думаю, теперь я понимаю, что вы хотите сделать. вы пытаетесь создать подмассив «приветствие» в строке $ row, содержащий все обои, связанные с этой новостной статьей. Чтобы получить желаемый результат, вам не нужно объединять массивы row2 и row, просто сделайте row2 частью row1
//...
$row2= array();
while($data2 = mysqli_fetch_array($result2))
{
array_push($row2,$data2);
}
if (count($row2) > 0) {
$row["greet"] = $row2;
}
//...
Этот код должен сгенерировать json, который вы опубликовали.
объединение массивов вместо этого создаст что-то вроде этого:
"id": "30",
"news_type": "image",
"news_heading": "News title",
"news_weburl": "#",
"total_share": "0",
"cat_id": "112",
"category_name": "tech",
"wid": "11",
"wall_title": "tech image wallpaper1",
"wall_image": "image1.jpg",
и может быть выполнено только с одним изображением
Если бы вы хотели, чтобы это выглядело так, как указано выше, если бы был только один image вы можете изменить код следующим образом:
if (count($images) == 1) {
$row["wid"] = $row2[0]["wid"];
$row["wall_title"] = $row2[0]["wall_title"];
$row["wall_image"] = $row2[0]["wall_image"];
} elseif (count($row2) > 1) {
$row["greet"] = $row2;
}
//...