如何返回多个值​从PHP数组(PHP-XML)



我需要帮助从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;
}
}

最新更新