разбирать массив и выбирать ту же информацию - PullRequest
1 голос
/ 22 января 2011

Эй, это пример возврата массива из моего мыльного ответа (у меня нет контроля над веб-сервисом)

[Names]
 [Name]
  [ID] => GH01
  [First] => Greg
  [Last] => Hobb
  [DateAvailable] =>12.04.2011
  [Contactable] => true

 [Name]      

  [ID] => JM01
  [First] => James
  [Last] => Murr;
  [DatesAvailable] => 12.04.2011
  [Contactable] => true

 [Name]
  [ID] => GH01
  [First] => Greg
  [Last] => Hobb
  [DateAvailable] => 13.04.2011
  [Contactable] => true

 [Name]
  [ID] => JM01
  [First] => James
  [Last] => Murr;
  [DatesAvailable] => 13.04.2011
  [Contactable] => true

Я не могу сформировать цикл, который будет брать каждое имя и группировать доступные даты. чувствую себя так глупо кажется простым, но я не могу разобраться с этим. возможно, один из ваших гуру по формуле может направить меня в правильном направлении.

код для получения объекта выглядит следующим образом:

$ result-> Имен;

как бы я хотел отобразить:

Имя: Грег Хобб Возможные даты: 12.04.2011 - 13.04.2011

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

1 Ответ

1 голос
/ 22 января 2011

Кажется, что способ реализации вашего массива / данных не нужен и слишком сложен.У вас есть два одинаковых элемента массива, кроме даты, так что вы можете взять два DatesAvailable (начальную и конечную даты) и сложить их вместе, чтобы создать фактический DatesAvailble.В вашем массиве Name просто поместите поля startDate и endDate.Таким образом, каждый элемент - это отдельная личность, содержащая все необходимые вам данные.

Вот некоторый реальный изменчивый код (быстро его взбил) о том, как вы можете взять это, и создать новый массив, подобный тому, который я описал выше:

$newArray; $flag; $num;
for($i = 0; $i < count($Names); $i++)
{
    $flag = false;
    for($c = 0; $c < count($newArray); $c++)
    {
         if($names[$i][$ID] == $newArray[$c][$ID])
         {
              $newArray[$c][$endDate] = $Names[$i][$datesAvailable];
              $flag = true;
              break;
         }
     }
    if(!$flag)
    {
         //create a new element in $newArray. set ur ID, contact fields, etc.
         $newArray[count($newArray)][$startDate] = $names[$i][$datesAvailable];
     }
 }

Надеюсь, что это поможет> <</p>

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