【发布时间】:2021-12-03 12:25:57
【问题描述】:
SCREENSHOT在这种情况下,我得到了每篇文章的第一张图片,但所有文章的价格相同,请看截图。 我想在下面显示具有相关价格的每个产品图片。 我正在使用唯一的数组来删除图像重复,我认为这是错误的。 我正在从 xml 获取数据。
<PRODUCTDATA>
<PRODUCT>
<P_NAME>
<VALUE>Lether Jacket</VALUE>
</P_NAME>
<ARTICLEDATA>
<ARTICLE>
<A_PRICEDATA>
<A_PRICE>
<A_VK>34.95</A_VK>
</A_PRICE>
</A_PRICEDATA>
<A_MEDIADATA>
<A_MEDIA>https://1.jpg</A_MEDIA>
<A_MEDIA>https://2.jpg</A_MEDIA>
<A_MEDIA>https://3.jpg</A_MEDIA>
<A_MEDIA>https://4.jpg</A_MEDIA>
</A_MEDIADATA>
</ARTICLE>
<ARTICLE>
<A_PRICEDATA>
<A_PRICE>
<A_VK>40.95</A_VK>
</A_PRICE>
</A_PRICEDATA>
<A_MEDIADATA>
<A_MEDIA>https://11.jpg</A_MEDIA>
<A_MEDIA>https://22.jpg</A_MEDIA>
<A_MEDIA>https://33.jpg</A_MEDIA>
<A_MEDIA>https://44.jpg</A_MEDIA>
</A_MEDIADATA>
</ARTICLE>
</ARTICLEDATA>
</PRODUCT>
<PRODUCT>
<P_NAME>
<VALUE>Jeans</VALUE>
</P_NAME>
<ARTICLEDATA>
<ARTICLE>
<A_PRICEDATA>
<A_PRICE>
<A_VK>29.95</A_VK>
</A_PRICE>
</A_PRICEDATA>
<A_MEDIADATA>
<A_MEDIA>https://111.jpg</A_MEDIA>
<A_MEDIA>https://222.jpg</A_MEDIA>
<A_MEDIA>https://333.jpg</A_MEDIA>
<A_MEDIA>https://444.jpg</A_MEDIA>
</A_MEDIADATA>
</ARTICLE>
<ARTICLE>
<A_PRICEDATA>
<A_PRICE>
<A_VK>19.95</A_VK>
</A_PRICE>
</A_PRICEDATA>
<A_MEDIADATA>
<A_MEDIA>https://1111.jpg</A_MEDIA>
<A_MEDIA>https://2222.jpg</A_MEDIA>
<A_MEDIA>https://3333.jpg</A_MEDIA>
<A_MEDIA>https://4444.jpg</A_MEDIA>
</A_MEDIADATA>
</ARTICLE>
</ARTICLEDATA>
</PRODUCT>
</PRODUCTDATA>
$xml = simplexml_load_file($datei);
foreach($xml->PRODUCTDATA->PRODUCT as $p)
{
$prod = (string) $p->P_NAME->VALUE;
$articles = "";
foreach ($p->ARTICLEDATA->ARTICLE as $article)
{
$price = (string)$article->A_PRICEDATA->A_PRICE->A_VK;
$firstImage = (string)$article->A_MEDIADATA->A_MEDIA;
$articles++;
}
}
$articles .= '<div class="photo"><img src="' . $firstImage . '" style="width: 120px margin:5px;"><div class="product-info mt__15"><h3 class="product-title pr fs__14 mg__0 fwm">' . $prod . '</h3><span class="price">€' . $price . ' EUR</span></div></div>';
因为 $p 之前被定义为 XMl 中的 Parent 元素,作为 Product 里面有许多文章。 然后变量 $articlesss 将被插入到一个包含完整 HTML 页面的 php 长字符串中,所以这就是我试图将它们放在这个变量中的原因。
【问题讨论】:
-
你说的首价是什么意思?只有一个价格。
-
我很惊讶你能得到一个显示器。因为您将
$prices[$m]设置为数组,但您连接了">€' . $prices . ' EUR<。这应该给一个 array to string 错误。 -
我正在获取每篇文章的第一张图片,但所有文章的价格相同。我编辑了帖子,谢谢
-
那是因为
$prices。应该是$prices[$m] -
它变得非常复杂,这就是为什么如果有机会重组它。我现在正在这样做,我正在考虑将文章作为数组,所以每篇文章都应该有第一张图片和他自己的价格。我被困在我不知道如何将它们组合在一起作为变量字符串的地方(与 $images 相同)