javascript - 如何以干净的方式回显列表的几个名称
问题描述
我正在使用以下代码列出每个帖子的长列表的前 7 个名称。问题是当某个帖子包含低于 7 的名称列表时,对于每个缺失的名称直到 7,它会自动打印一个逗号','
因此,当名称为 7 或更多时,它会正确显示:“name1, name2, name3, name4, name5, name6, name7” 而例如,如果它仅包含 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 ',';
在结束之前添加,但它向我报告了系统错误语法:(
有什么建议吗?
解决方案
将循环限制为 $value_array 的大小,同时保持 7 的限制。
for ($i = 0, $count = count($value_array); $i < 7 && $i < $count; $i++)
编码相同想法的另一种方法:
for ($i = 0, $min = min(7, count($value_array)); $i < $min; $i++)
推荐阅读
- c# - 如何从对象列表中删除(通过 linq)重复项
- django - 为什么必须通过泛型 DetailView 的 get_context_data 方法检索上下文?
- python - 无属性:使用 smtplib 发送电子邮件时发现“审核”
- r - 如何根据它们对 R 中所有列的总和的贡献来删除数据框中的列
- go - 查找模块的版本
- ios - ios 13 UIContextMenu 显示缩短的 UIAction 标题
- mongodb - 在调用 Execute 之前,插入操作必须有一个部署集
- c# - 窗口服务状态显示为正在运行,但未在 c# 中执行该方法
- mysql - 在多列上使用 GROUP BY 获取最新的 ROW
- spring-boot - 在修改主题时重置 Spring Boot Kafka Stream Application