php echo语句之间的分隔符(如果需要)

时间:2012-08-10 10:55:41

标签: php echo comma separator

如果需要分隔符,如何在元素之间显示分隔符?我需要显示姓名,职称,公司。如果每个都出现在新闻报价条目中。

并非所有新闻报道都包含所有三项,可能是:

  1. 姓名,职称,公司
  2. 姓名,职称
  3. 姓名,公司
  4. 名称
  5. 对于每个变体,我需要回复一个separtor这样的,或者|

    目前查询是:

    <?php echo $row_article['quote_name'] . ', ' . $row_article['quote_job'] . ', ' . $row_article['quote_company']; ?>
    

    如果所有三个都存在,那么它看起来是正确的。如果只有两个存在,我会得到像

    这样的东西
    name, , company
    , job title, company
    name, job title,
    

5 个答案:

答案 0 :(得分:3)

您需要使用array_filterimplode的组合。

我会写一个例子。

<?php

$delimiter = ' | ';

$row_articles = array(
  array(
    'quote_name' => 'Foo',
    'quote_job' => 'Bar',
    'quote_company' =>'Baz'
  ),
  array(
    'quote_name' => 'Foo',
    'quote_job' => 'Bar',
    'quote_company' =>''
  ),
  array(
    'quote_name' => 'Foo',
    'quote_job' => '',
    'quote_company' =>'Baz'
  ),
  array(
    'quote_name' => 'Foo',
    'quote_job' => '',
    'quote_company' =>''
  ),
);


foreach ($row_articles as $row_article) {
  echo implode($delimiter, array_filter($row_article));
  echo "\n";
}

<强>输出

Foo | Bar | Baz
Foo | Bar
Foo | Baz
Foo

答案 1 :(得分:2)

implode是你的朋友。

将每个项添加到保持数组,然后使用implode(“,”,array_name)将它们连接起来。

答案 2 :(得分:1)

其中一种方法是将它们放入数组

$arr[] = $var1;
$arr[] = $var2;
$arr[] = $var3;

$newarr = array_filter($arr);

echo implode(',', $newarr);

答案 3 :(得分:0)

试试这个......

echo implode( ', ', $row_article);

答案 4 :(得分:0)

使用像这样的php implode方法。

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// Empty string when using an empty array:
var_dump(implode('hello', array())); // string(0) ""

?>