我正在使用以下代碼為每個帖子列出長串列的前 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 ',';在最后添加,但它向我報告了系統錯誤語法:(
有什么建議嗎?
uj5u.com熱心網友回復:
將回圈限制為 $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 )
uj5u.com熱心網友回復:
您在陣列中有“值”,因此您可以使用陣列函式。
<?php
$values = get_post_meta($post->ID, 'list_of_names', true);
$value_array = explode(',', $values);
$hrefs = [];
foreach (array_slice($value_array,0,7) as $value)
{
$remove_space = str_replace(' ', '-', $value);
$url = esc_url('myblogurl' . $remove_space);
if ('' !== $url)
{
$display = esc_html($value);
$hrefs[] = "<a href='$url'>$display</a>";
}
}
echo implode(",", $hrefs);
?>
請參閱:array_slice()
value如果您希望其他人了解您的代碼是關于什么的,我建議使用除變數名以外的其他名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350365.html
標籤:javascript php 数据库
下一篇:SQL插入重復項
