我从XML文件中获取数据,我需要在PHP中使用数组生成数据。任何人都可以告诉我如何在计数未知时填充PHP数组吗?
function getFeed($feed_url)
{
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
echo "<ul>";
foreach($x->channel->item as $entry)
{
echo "
<li>
<a href='$entry->link' title='$entry->title' target='_new'> " . $entry->title . "</a>
</li>";
}
echo "</ul>";
}
答案 0 :(得分:1)
问题:当计数未知时,任何人都可以告诉我如何填充php数组
声明数组并向其添加项目或使用array_push
$something = array();
$something[] = 'first item';
$something[] = 'second item';
答案 1 :(得分:0)
希望这适合你:
$c = 0;
$entries = Array();
foreach($x->channel->item as $entry) {
echo "
<li>
<a href='$entry->link' title='$entry->title' target='_new'> " . $entry->title . " </a>
</li>";
$entries[$c] = $entry->title;
$c++;
}
答案 2 :(得分:0)
我可以看到您在浏览XML节点时打印HTML列表。因此,如果我得到您的问题,您还需要使用从XML获取的数据填充数组(同时),实际上将XML转换为数组...是您想要的吗?
然后,您只需要在foreach语句之前声明一个空数组:
$arr = array();
然后,在foreach中,以这种方式向数组中添加新字段:
$arr[] = $entry;
如果您需要指定更多字段,可以执行以下操作:
$arr[] = array(
'field' => $entry->fieldvalue
);`
希望这有帮助!
答案 3 :(得分:0)
function getFeed($feed_url) {
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
$count = 0;
$data = array();
foreach($x->channel->item as $entry) {
$data[$count]['link'] = $entry->link;
$data[$count]['title'] = $entry->title;
$count++;
}
return $data;
}
可能是更好的解决方案。然后,您可以以更灵活的方式操纵数据;保持数据与演示分开。只需循环浏览$data
并根据需要输出。
答案 4 :(得分:0)
您始终可以使用array_push()或基本数组方法。 http://php.net/manual/en/function.array-push.php
$list = array();
array_push($list,$element);
or
$list[] = $element;
<?php
function getFeed($feed_url) {
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
$list = array();
foreach($x->channel->item as $entry) {
array_push($list,$entry);
}
return $list;
}
$list = getFeed("url");
echo "<ul>";
foreach($list as $entry) {
echo "
<li>
<a href='$entry->link' title='$entry->title' target='_new'> " . $entry->title . "</a>
</li>";
}
echo "</ul>";
?>