输出PHP条件为字符串,删除最后一个字符


Output PHP conditional to string, remove last character

我正在使用wordpress的高级自定义字段,它使用语法get_field('custom_field_name');从数据库中提取自定义字段。 在这种情况下,我有一系列复选框,我正在使用PHP来查看每个复选框是否已选中,如果是,它将吐出一个字符串。这是我的PHP:

<?php 
    if(in_array('brand-id', get_field('type_of_work') )): echo "<a href='../../work/#brand-id'>Brand ID</a> |"; endif; echo " ";
    if(in_array('print', get_field('type_of_work') )): echo "<a href='../../work/#print'>Print</a> |"; endif; echo " ";
    if(in_array('books', get_field('type_of_work') )): echo "<a href='../../work/#books'>Books</a> |"; endif; echo " ";
    if(in_array('web', get_field('type_of_work') )): echo "<a href='../../work/#web'>Web</a> |"; endif; echo " "; 
    if(in_array('packaging', get_field('type_of_work') )): echo "<a href='../../work/#packaging'>Packaging</a> |"; endif; echo " ";
    if(in_array('exhibit', get_field('type_of_work') )): echo "<a href='../../work/#exhibit'>Exhibit</a> |"; endif; 
?>

这样做的意思是说,如果选中此复选框,则吐出该复选框的链接。如您所见,我在每个链接后都回显了一个"|"。问题是最后一个链接后跟一个"|"。我想用 PHP 以编程方式删除最后一个"|"。也许我可以将整个东西转换为字符串,然后使用substr($string, 0, -1);?安妮想我该怎么做?

$links = array();
if(in_array('brand-id', get_field('type_of_work') )) $links[] = "<a href='../../work/#brand-id'>Brand ID</a>";
....
echo implode(" | ",$links);

使用字符串:

$checks = "";
if(in_array('brand-id', get_field('type_of_work') )):  $checks .= "<a href='../../work/#brand-id'>Brand ID</a> | "; endif;
if(in_array('brand-id', get_field('type_of_work') )):  $checks .= "<a href='../../work/#print'>Print</a> |"; endif;

then: substr(( on $checks: echo substr($checks, 0, -2);

  1. 与其直接回显文本,不如将其连接到字符串变量
  2. 使用trim($string, '|')删除尾随管道|(手动(