У меня есть проблема, которую я не могу решить из нескольких дней. Мне нужно создать массив, который кодирует для Json в этом формате:[PHP] [JSON] Неверный генератор массива
[
{
"city": "Wroclaw",
"data": [
{
"id": "#",
"name": "Zlote tarasy",
"city": "Wroclaw",
"post_code": "50-545",
"street": "Ko\u015bciuszki",
"house_no": "2",
"flat_no": "4",
"opening_hours": "8:00 - 16:00",
"latitude": 52.2330649,
"longitude": 20.9207689,
"description": "Opis sklepu"
},
{
"id": "#",
"name": "Arkadia",
"city": "Wroclaw",
"post_code": "50-545",
"street": "Ko\u015bciuszki",
"house_no": "2",
"flat_no": "4",
"opening_hours": "8:00 - 16:00",
"latitude": 52.2571437,
"longitude": 20.9822873,
"description": "Opis sklepu"
}
]
}]
Вот мой генерировать метод массива:
public function getCollectionAsArray()
{
$stores = $this->getStoreCollection();
$jsonArray = array();
foreach ($stores as $store) {
$jsonArray[] = array(
'city' => $store->getCity(),
'data' => array(
[
'id' => $store->getIdentifier(),
'name' => $store->getName(),
'post_code' => $store->getPostCode(),
'street' => $store->getStreet(),
'house_no' => $store->getHouseNo(),
'flat_no' => $store->getFlatNo(),
'latitude' => $store->getLatitude(),
'longitude' => $store->getLongitude(),
'description' => $store->getDescription()
],
),
);
}
return $jsonArray;
}
Это работает, но когда у меня есть 2 одинаковые Города, это создать новый город вместо оных данные массива «данные»:
array (size=4)
0 =>
array (size=2)
'city' => string 'Wrocław' (length=8)
'data' =>
array (size=1)
0 =>
array (size=9)
...
1 =>
array (size=2)
'city' => string 'Wrocław' (length=8)
'data' =>
array (size=1)
0 =>
array (size=9)
Я пытался с array_merge и array_push, но не увенчались успехом. Большое спасибо за вашу помощь :)
Я думаю, что в цикле Еогеасп, если вы используете, если заявление, чтобы проверить, если «город» значение в массиве 'in_array()', и если он должен затем поручить код для добавьте данные, а если не проинструктируйте код о добавлении нового города. –
Итак, я думаю, вы просто ждали, когда кто-то сделает это за вас, не так ли? – RiggsFolly
Нет, я не собираюсь отвечать за ответ. Я пытаюсь сделать сам. Я трачу много времени на эту проблему и до сих пор не разрешил ее, поэтому я решил обратиться за помощью к людям (не готовое решение) – Gatzu