【发布时间】:2019-11-14 21:39:45
【问题描述】:
我有一些来自soap api的数据。此数据采用以下格式:
array(2) {
["Request"]=>
object(stdClass)#7 (3) {
["AccessKey"]=>
string(3) "dub"
["Timestamp"]=>
string(19) "2019.07.04 09:06:19"
["Conditions"]=>
object(stdClass)#8 (1) {
["Condition"]=>
object(stdClass)#9 (2) {
["Field"]=>
string(11) "From"
["Value"]=>
string(10) "1562223979"
}
}
}
["Products"]=>
object(stdClass)#10 (1) {
["Product"]=>
array(10) {
[0]=>
object(stdClass)#11 (11) {
["Ean"]=>
string(13) "4029759107323"
["Type"]=>
string(9) "DVD"
["Title"]=>
string(58) "Hellraisers"
["FSK"]=>
string(36) "Freigegeben ohne Altersbeschränkung"
["Genre"]=>
string(5) "Sport"
["Year"]=>
string(4) "2015"
["Length"]=>
string(3) "275"
["Language"]=>
string(7) "Deutsch"
["Items"]=>
string(1) "2"
["Release"]=>
string(10) "2049-12-31"
["Label"]=>
string(17) "Edel Germany GmbH"
}
我想遍历这些数据并获取每个集合的标题。
我尝试了一个 foreach 循环,但我收到了一些错误消息。
foreach ($results as $result) {
echo "Titel " . $result->Titel;
}
foreach ($results as $result) {
echo "Titel " . $result['Product']->Titel;
}
没有任何作用。我无法将头绕在数组周围...
【问题讨论】:
-
Titel你的意思是Title?正如您希望该示例的输出将是“Hellraisers”? -
因为数据看起来好像在另一个元素下 - 最后尝试
foreach ($results['Products'] as $result) {。 (连同正确的拼写)。 -
结果数组中的 2 个对象看起来非常不同。我认为循环不是获得这些结果的最佳方式。
-
感谢您的快速回复! @Nigel当我尝试这个时,我得到致命错误:未捕获的错误:无法使用stdClass类型的对象作为/opt/lampp/htdocs/api_test/index.php中的数组:39堆栈跟踪:在/opt中抛出#0 {main} /lampp/htdocs/api_test/index.php 第 39 行
-
@Dirk 我还能尝试什么其他方法?
标签: php arrays object soap iteration