如何在数组项之间添加逗号PHP - Drupal

时间:2011-07-15 15:13:35

标签: php

我正在尝试在这些数组项之间添加逗号,但是如果我使用implode则只返回Array,Array。

function boron_taxonomy_links($node, $vid, $type, $cat) {
  if (count($node->taxonomy)){
    $tags = array();
    foreach ($node->taxonomy as $term) {
       if ($term->vid == $vid){
          $tags[] = array('title' => $term->name . ',', 'href' => $type . '/' . $cat . '/' . $term->tid, 'attributes' => array('rel' => 'tag'));
       }
}
    if ($tags){
      return theme_links($tags, array('class'=>'links inline'));
    }

  }
}

1 个答案:

答案 0 :(得分:0)

当你在$tags上调用implode时,它会在数组中对象的字符串表示之间放置一个逗号。在您的情况下,这些对象是PHP不知道如何变成字符串的数组,因此它使用字符串'Array'

您需要确保$tags填充了您希望的格式化字符串。由于你没有提到你想要它出现的方式,我在下面只是一个例子。

function TermToString($type, $cat, $term) {
    $title = $term->name . ',';
    $href = $type . '/' . $cat . '/' . $term->tid;
    $attribures = array('rel' => 'tag');

    // combine into some string and return
    return "<a href=\"$href\" title=\"$title\" ref=\"{$attribures['rel']}\">$title</a>";
}

function boron_taxonomy_links($node, $vid, $type, $cat) {
    if (count($node->taxonomy)) {
        $tags = array();
        foreach ($node->taxonomy as $term) {
            if ($term->vid == $vid) {
                $tags[] = TermToString($type, $cat, $term);
            }
        }
        if ($tags) {
            return theme_links($tags, array('class' => 'links inline'));
        }
    }
}