У меня небольшая проблема с массивом. Я принципиально объявляю массивSymfony2 - Массив переопределяется
public function getAvailabilityData(){
$alerts = $this->em->getRepository('NickAlertBundle:AvailabilityAlert')->getActiveAlertIds();
$alertsArray = array();
if (!$alerts) {
throw $this->createNotFoundException('Unable to find Availability.');
}
foreach($alerts as $alert){
$alertId = (int)$alert['id'];
$alertsArray[$alertId] = array();
$allAvailability = $this->em->getRepository('NickAlertBundle:AvailabilityAlertAvailability')->getAlertAvailability($alertId);
foreach($allAvailability as $alertAvailability)
{
var_dump($alertAvailability);
$dateString = $alertAvailability['lastUpdated'];
$dateString = $dateString->format('d M Y H:00');
// Create the second dimension of the array, using the alert pseudo as the key.
if (empty($alerts[$alertId][$alertAvailability['alertPseudo']])) {
$alertsArray[$alertId][$alertAvailability['alertPseudo']] = array();
}
// Create the third dimension of the array, using the flight number as the key.
if (empty($alerts[$alertId][$alertAvailability['alertPseudo']][$alertAvailability['flightNumber']])) {
$alertsArray[$alertId][$alertAvailability['alertPseudo']][$alertAvailability['flightNumber']] = array();
}
// Create the fourth dimension of the array, using the date string as the key.
if (empty($alerts[$alertId][$alertAvailability['alertPseudo']][$alertAvailability['flightNumber']][$dateString])) {
$alertsArray[$alertId][$alertAvailability['alertPseudo']][$alertAvailability['flightNumber']][$dateString] = array();
}
// Create the fifth dimension of the array, using the class letter as a key, and the availability value as the value.
$alertsArray[$alertId][$alertAvailability['alertPseudo']][$alertAvailability['flightNumber']][$dateString][$alertAvailability['classLetter']] = $alertAvailability['availability'];
}
}
var_dump($alertsArray);
return $alertsArray;
}
Теперь, когда первый var_dump показывает мне, что все данные есть. Получается вот так
array(5) {
["availability"]=> string(1) "9"
["lastUpdated"]=> object(DateTime)#378 (3) {
["date"]=> string(19) "2015-02-22 14:28:58" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"
}
["classLetter"]=> string(1) "C"
["alertPseudo"]=> string(3) "123"
["flightNumber"]=> string(3) "VS7"
}
array(5) {
["availability"]=> string(1) "9"
["lastUpdated"]=> object(DateTime)#369 (3) {
["date"]=> string(19) "2015-02-22 14:28:58" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"
}
["classLetter"]=> string(1) "D"
["alertPseudo"]=> string(3) "123"
["flightNumber"]=> string(3) "VS7"
}
array(5) {
["availability"]=> string(1) "9"
["lastUpdated"]=> object(DateTime)#367 (3) {
["date"]=> string(19) "2015-02-22 14:28:58" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"
}
["classLetter"]=> string(1) "I"
["alertPseudo"]=> string(3) "123"
["flightNumber"]=> string(3) "VS7"
}
Теперь, когда я создаю мой массив, он должен создавать записи для каждого «строки», который выводится выше, в этом случае он должен делать 3. Однако, если выходной массив, Я получаю
array(1) {
[1]=> array(1) {
["123"]=> array(1) {
["VS7"]=> array(1) {
["22 Feb 2015 14:00"]=> array(1) {
["I"]=> string(1) "9"
}
}
}
}
}
так что только создание последнего объекта из моего var_dump, похоже, это переопределение другой 2.
Теперь это точно так же, как мой нормальный PHP версии я работаю, единственная разница в том, что вместо цикла foreach я делаю
while ($aRow = $availabilitySql->fetch(PDO::FETCH_ASSOC)) {
Так почему же мое создание массива выше переопределения каждый раз?
Благодаря
, что ' var_dump ($ alertAvailability); 'говорит? ps .: возможно, объект должен быть лучше для такого рода« структуры данных », чем массив. Второй: где определено' $ alertId'? – DonCallisto
Извините, я обновил свой вопрос с помощью целая функция. var_dump можно увидеть в моем втором блоке кода. Третий блок кода - это правильные данные для 1 строки, но он должен делать это для всех 3. Вот почему это странно, он работает в моем старом коде, поэтому не знаю, почему он не работает здесь –
Что такое var_dump соответствует? – DonCallisto