Поэтому я поставил перед собой несколько вопросов, чтобы попытаться заставить это работать... но я просто не могу его взломать. По существу, что я пытаюсь сделать, это цикл через XML файл и возвращать пары ключей => для элементов из этого файла. В другом контексте я пытаюсь сохранить элемент ASIN (Amazon API) в качестве ключа, а URL-адрес изображения - как значение в массиве.
Здесь структура XML файла, в случае, если это помогает кому-то определить, где мой код испорчен:
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<Keywords>biology</Keywords>
<ResponseGroup>Images</ResponseGroup>
<SearchIndex>Books</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalResults>280951</TotalResults>
<TotalPages>28096</TotalPages>
<MoreSearchResultsUrl>
http://www.amazon.com/gp/redirect.html?camp=2025&creative=386001&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fsearch%3Fkeywords%3Dbiology%26url%3Dsearch-alias%253Dstripbooks&linkCode=xm2&tag=comparcom035-20&SubscriptionId=AKIAIQ7UEDX4CFRSBDXA
</MoreSearchResultsUrl>
<Item>
<ASIN>0321558235</ASIN>
<SmallImage>
<URL>
http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">62</Width>
</SmallImage>
и здесь код, с которым я работаю:
$xml = simplexml_load_file($SignedRequest);
$image = simplexml_load_file($getimage);
foreach ($image->Items->Item->ASIN as $key => $value) {
$array[$key] = $image->Items->Item->SmallImage->URL;
}
print_r($array);
Мой вывод выглядит следующим образом:
Array ( [ASIN] => SimpleXMLElement Object ( [0] => http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg ) )
Я думаю, что я близок... но может ли кто-нибудь указать, что я здесь делаю неправильно? Кажется, я не могу заставить мой цикл правильно назначать ключ и значение, не бросая какую-то ошибку.
Вы близки, вам просто нужно указать значение как строку:
$array[$key] = (string) $image->Items->Item->SmallImage->URL;
Попробуй это:
$item = $image->Items->Item;
$array[(string)$item->ASIN] = (string)$item->SmallImage->URL;
Вывод:
Array
(
[0321558235] => http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg
)