我需要帮助从PHP数组中提取数据,然后我需要创建XML标记。我有一根绳子,你可以在下面看到。有时只有一个数据(一张图片(,有时有几个图片
[0]=> "https://test.com/1.jpg"
[1]=> "https://test.com/2.jpg"
[2]=> "https://test.com/3.jpg"
...
我创建了一个php函数,当它遇到单个图像时,它可以很好地工作,但是当它遇到多个图像时,只返回数组中的第一个元素(图像(。
function Photo($Images)
{
$br=count($Images);
if ($br==1){ return "<photo><url>".$Images."</url><priority><![CDATA[1]]></priority></photo>"; }
elseif ($br>1)
{
$broj=count($Images);
foreach ($Images as $value)
{
for ($i = 0; $i < $broj; $i++) {
}
return "<photo><url>$value</url></photo>";
}
}
}
我需要一个函数来返回一个XML标签,其中包含图像的URL和序列中的序号,例如
<photo> <url> https://test.com/1.jpg </url> <priority> 1 </priority> </photo>
<photo> <url> https://test.com/2.jpg </url> <priority> 2 </priority> </photo>
etc
我对嵌套的XML和PHP中的返回函数有问题。换句话说,我需要函数来返回数组的所有元素,而不仅仅是第一个元素。
他用echo向我发射了所有东西并报告了一个错误。
我正在学习PHP,我需要的帮助
感谢
您的问题是使用了return
关键字,该关键字会中止整个函数,并提前结束for
循环,只返回数组中的第一个值。
相反,一种选择是有一个包含当前XML的字符串,并不断添加到其中,直到for
循环完成。在for
循环之后,您可以return
该字符串。
function Photo($Images) {
$br = count($Images);
if ($br == 1) {
return "<photo><url>".$Images."</url><priority><![CDATA[1]]></priority></photo>";
} elseif ($br > 1) {
// Start off with an empty string
$imagesString = "";
foreach ($Images as $value) {
// Append to the end of the string
$imagesString .= "<photo><url>$value</url></photo>";
}
return $imagesString;
}
}