我从SOAP客户端得到以下参数作为响应。参数Serial Equipment显示第一个值然后给出错误,因为类stdClass的对象无法转换为字符串。我有许多值来自Serial Equipment参数及其数组。所以不知道如何显示所有值
代码:
function getVehicleValuation()
{
$client = new SoapClient($wsdl, $options);
$result = $client->getVehicleValuation($params);
$return = array(
'Serial Equipment' => $result->vehicle->SerialEquipment
);
return $return;
}
尝试显示此代码的结果:
if($parameter['aktion'] == 'getVehicle')
{
ob_start();
var_dump(Login());
$s = ob_get_clean();
$returned_array=getVehicleValuation();
foreach($returned_array as $objects)
{
foreach($objects as $key => $obj)
{
echo "key.: " . $key . "<br>";
echo $obj->Code . "<br>";
echo $obj->Desc_Short . "<br>";
echo $obj->Desc_Long . "<br>";
echo $obj->Esaco . "<br>";
}
}
}
当我使用简单的var_dump(SerialEquipment)时,输出将得到结果:
array (size=1)
'Serial Equipment' =>
array (size=41)
0 =>
object(stdClass)[6]
public 'Code' => int 204093
public 'Desc_Short' => string 'Ablagefach mittig in Gepäckraumtrennwand;ESACO_UG(122)' (length=55)
public 'Desc_Long' => string 'Ablagefach mittig in Gepäckraumtrennwand inkl. verschiebbarem Haltenetz' (length=72)
public 'Esaco' =>
object(stdClass)[7]
...
1 =>
object(stdClass)[8]
public 'Code' => int 160452
public 'Desc_Short' => string 'Airbag für Fahrer und Beifahrer, 2-stufi;ESACO_UG(103)' (length=55)
public 'Desc_Long' => string 'Airbag für Fahrer und Beifahrer 2-stufig' (length=41)
public 'Esaco' =>
array (size=2)
...
2 =>
object(stdClass)[11]
public 'Code' => int 195607
public 'Desc_Short' => string 'Airbag: Kopf- u. Seiten - Airbags vorn;ESACO_UG(104,102)' (length=56)
public 'Desc_Long' => string 'Airbag: Seitenairbag für Fahrer und Beifahrer (Kopf/Thorax)' (length=60)
public 'Esaco' =>
array (size=2)
...
答案 0 :(得分:0)
如果$ result-&gt; vehicle-&gt; SerialEquipment返回一个数组,您应该使用该数组来填充您的密钥'Serial Equipment'的值。
尝试print_r($ result-&gt; vehicle-&gt; SerialEquipment);在你的PHP代码中调查内容。
现在由你决定用它来做什么。您想将该阵列的完整内容传输到您的密钥“串行设备”吗?或者只是几个值?
如果你想要将$ result-&gt; vehicle-&gt; SerialEquipment打包成一个字符串的WHOLE结构(无论它是什么),请看看JSON。 Json可以将数组转换为可以分配的字符串。
在分配到您的密钥'Serial Equipment'之前打包它,因此它包含一个字符串。 然后在接收时解压缩。
看看这里:
http://php.net/manual/en/function.json-encode.php
和
答案 1 :(得分:0)
由于返回的值是数组,因此必须循环其项。 尝试像
这样的东西foreach($returned_array as $key => $val) {
if (is_array($val)) {
echo $key . ' => ' . "<br/>";
foreach($val as $k => $v) {
echo ' ' . $k . ' ' . $v . '<br/>';
}
}
else {
echo $key . ' ' . $val . '<br/>';
}
}
这是一个代码示例,可以扩展它并编写一个递归函数,它将显示一个更复杂的结构,如下所示:http://dev.armage.org/wiki/doku.php?id=web:php:debug