Как разобрать ответ веб-сервиса в массив в PHP - PullRequest
0 голосов
/ 26 декабря 2011

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

<code>         $fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>""));
            $arrayPid = array();

            foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained)
            {
                $arrayPid = get_object_vars($fileStatusObtained);
                //$arrayPid =$fileStatusObtained ;
            }

            echo is_array($arrayPid) ? 'Array' : 'not an Array';
            echo "<br>";

            echo("Count of array ".count($arrayPid));
            echo "<br>";
            print_r('<pre>'. print_r($arrayPid) .'
');

Это http://www.image -share.com / ijpg-1163-165.html - это то, что я увидел в результате.

Теперь, когда этот объект имеетобъекты внутри него вместе со значениями, которые мне нужны, т.е. FileID, FileName и т. д. Я вижу сообщение об ошибке, но мельком увидеть вывод.Код, который я использовал, был таким (просто очень незначительное изменение по сравнению с вышеупомянутым. Я использовал foreach)

<code>  $fileStatus = $ServicesLink->GetFileStatus(array('Ticket'=>$ticket,'ProjectID'=>$pidobtained,'SourceLanguageID'=> "", 'TargetLanguageID'=> "",'FileID'=> "",'Filename'=>""));
            $arrayPid = array();

            foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained)
            {
                $arrayPid = get_object_vars($fileStatusObtained);
                //$arrayPid =$fileStatusObtained ;
            }

            echo is_array($arrayPid) ? 'Array' : 'not an Array';
            echo "<br>";

            echo("Count of array ".count($arrayPid));
            echo "<br>";
            //print_r('<pre>'. print_r($arrayPid) .'
');foreach ($ arrayPid as $ val) {echo ($ val);echo "
";}}

В результате этого я увидел следующий вывод http://www.image -share.com / ijpg-1163-166.html .Индекс номер 1 занимает объект и, следовательно, ошибка для преобразования строки.Если я использую цикл For вместо foreach в коде чуть выше, я не могу напечатать значения.Я попытался:

            for($i=0;$i<(count($arrayPid));$i+=1)
            {
              echo($arrayPid[$i]);
            }

Но это ничего не напечатало бы.

Может ли кто-нибудь помочь мне с таким способом, чтобы я мог повторять и иметь значения внутри этого массива $ arrayPid.

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

Спасибо, Энджи

1 Ответ

0 голосов
/ 28 декабря 2011

Правильный способ его использования:

       foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained)
            {
                $arrayPid = get_object_vars($fileStatusObtained);
                //print_r($fileStatusObtained->FileID);                 
                 $fileId [] = $fileStatusObtained->FileID;
                                               ...
                                              }
...