我正在通过我今天能够取得的一些突破来更新我的问题。我用了get_object_vars。 这段代码能够打印出我想要迭代的值。
$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) .'</pre>');
这http://www.image-share.com/ijpg-1163-165.html就是我所看到的结果。
现在,因为这个Object里面有对象以及我需要的值,即FileID,FileName等。我看到了错误信息,但却看到了输出。我使用的代码是这个(仅仅是上面的一个非常小的变化。我使用了foreach)
$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) .'</pre>');
foreach($arrayPid as $val) {
echo ($val);
echo "<br>";
}
}
因此我看到了以下输出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,但这是我可以分享我的屏幕的唯一方式。
由于 安琪
答案 0 :(得分:0)
使用它的正确方法是:
foreach($fileStatus->GetFileStatusResult->FileStatuses->FileStatus as $fileStatusObtained)
{
$arrayPid = get_object_vars($fileStatusObtained);
//print_r($fileStatusObtained->FileID);
$fileId [] = $fileStatusObtained->FileID;
...
}