PHP-Verbindung zu WCF-Service-Parsing-Rückgabedaten
Frage
Ich habe ein Problem mit dem Analysieren der Daten, die von meinem WCF-Webdienst zurückgegeben werden.
Der Web-Service findet eine Anordnung von Zeichenfolgen statt, wobei diese Daten in ein stdClass-Objekt gelegt werden, das Problem, das ich auftrat, ist, dass sich die Daten ändern, je nachdem, ob es 1 oder mehr Objekte gibt.
Nachdem ich nie mit stdclass-Objekten gehandelt habe, bin ich nicht wirklich sicher, was ich tun soll.
Im Folgenden ist der derzeit verwendete Code, den $ Container den Rückgabewert des Web-Service-Anrufs ist. generasacodicetagpre.
Wenn nur 1 Wert zurückgegeben wird, funktioniert der folgende Code gut und zeigt den zurückgegebenen Containernamen an. Wenn mehr als ein Wert von mehr als einem Wert zurückgegeben wird, wird $ item-> entsprechend anordnet.Gibt es sowieso, um zu bestimmen, welche Werte stdclass enthält?
var_dump mit nur 1 container generasacodicetagpre.
var_dump mit mehr als 1 container generasacodicetagpre.
Vielen Dank im Voraus,
matt
Lösung
you can use is_array($item->string)
to check if you have an array and then process it appropriately. Based on your code, I think something like this might work for you.
<?php var_dump($containers)?>
<ul>
<?php foreach($containers as $item):
if(is_array($item->string)):
foreach($item->string as $subitem):
<li class="subitem"><?php echo $subitem; ?></li>
<?php
endforeach;
else: ?>
<li><?php echo $item->string; ?></li>
<?php
endif;
endforeach;
?>
</ul>