【发布时间】:2021-12-20 03:30:42
【问题描述】:
我正在使用以下代码列出每个帖子的长列表的前 7 个名称。问题是当某个帖子包含低于 7 的名称列表时,对于每个缺失的名称直到 7,它会自动打印一个逗号','
因此,当名称为 7 或更多时,它会正确显示: “名称 1,名称 2,名称 3,名称 4,名称 5,名称 6,名称 7” 例如,如果它只包含 3 个名称,它将打印: "name1, name2, name3,,,,"
有没有在代码中添加一些东西来排除打印逗号以防 7 次以下的名称?
<?php
$value = get_post_meta($post->ID, 'list_of_names', true);
$value_array = explode(',', $value);
$hrefs = [];
for($i = 0; $i < 7; $i++)
{
$remove_space = str_replace(' ', '-', $value_array[$i]);
$url = esc_url('myblogurl' . $remove_space);
if ('' !== $url)
{
$display = esc_html($value_array[$i]);
$hrefs[] = "<a href='$url'>$display</a>";
}
}
echo implode(",", $hrefs);
?>
我一直在尝试在末尾添加elseif($i < 6) { echo ',';,但它报告了系统错误语法:(
有什么建议吗?
【问题讨论】:
-
if ('' !== $url)在这里是一个无用的检查,它将始终评估为真,因为您在上面的行中将该变量设置为非空。如果你的名字少于 7 个,这也应该抛出一些Undefined index-warnings。
标签: javascript php database