我正在尝试创建一个html元素,其中包含由x
依赖于元素数div
所包含的函数创建的x
个其他$allposts
个
<div id="postings">
<?php
foreach($allposts as $key => $value){
createPost($key, $value);
}
?>
</div>
上面这个html和php代码是我试图创建一个&#34;发布&#34;对于$allposts
数组中找到的每个项目。
<?php
function createPost($author, $input)
{
$data = [];
$i = 0;
foreach($input as $key => $value){
$data[$i] = $value;
$i++;
}
echo "<div>
<span class='post-title'>$data[0]</span>
<span class='post-author'>$author</span>
<span class='post-date'>$data[1]</span>
<p class='post-desc'>$data[2]</span>
</div>";
}
?>
这是包含函数createPost($author, $input)
。
该函数有效,但似乎每次调用函数时,都会覆盖上一篇文章,只留下一个帖子,最后是数组中的最后一个。
答案 0 :(得分:1)
<p class='post-desc'>$data[2]</span>;
没有正确的结束标记,可能会干扰格式化,导致在呈现给浏览器时丢失数据。你有一个html源的样本吗? 缩进确实有助于提高可读性。
<?php
function createPost($author, $input)
{
$data = [];
$i = 0;
foreach($input as $key => $value) {
$data[$i] = $value;
$i++;
}
echo "<div>
<span class='post-title'>$data[0]</span>
<span class='post-author'>$author</span>
<span class='post-date'>$data[1]</span>
<p class='post-desc'>$data[2]</p>
</div>";
}
?>
答案 1 :(得分:-1)
获取$data
以外的foreach
数组声明,另外需要做的更改是,不要使用$ i作为$ data数组的键,因为每次都会声明为0(所以,所有新值都取代了普通的值。因此,不要使用$i
保留$data[]
,而是自动添加数字索引。
<?php
$data = []; // I took it out of the loop.
function createPost($author, $input)
{
foreach($input as $key => $value){
$data[] = $value;
}
echo "<div>
<span class='post-title'>$data[0]</span>
<span class='post-author'>$author</span>
<span class='post-date'>$data[1]</span>
<p class='post-desc'>$data[2]</span>
</div>";
}
?>