0

如果需要分隔符,如何在元素之间显示分隔符?我需要显示姓名、职位、公司。如果这些中的每一个都出现在新闻引用条目中。

并非所有新闻报价都包含所有三个项目,它可能是:

  1. 姓名、职务、公司
  2. 姓名、职务
  3. 姓名、公司
  4. 姓名

对于每个变体,我需要回显一个分隔符,例如 , 或 |

目前的查询是这样的:

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

如果这三个都存在,它看起来是正确的。如果只有任何两个存在,我会得到类似

name, , company
, job title, company
name, job title,
4

5 回答 5

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
于 2012-08-10T10:58:18.383 回答
2

内爆是你的朋友。

将每个项目添加到一个保存数组中,然后使用 implode(", ", array_name) 将它们连接起来。

于 2012-08-10T10:58:09.267 回答
1

一种方法是将它们放在一个数组中

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

$newarr = array_filter($arr);

echo implode(',', $newarr);
于 2012-08-10T10:58:59.320 回答
0

尝试这个...

echo implode( ', ', $row_article);
于 2012-08-10T10:58:50.400 回答
0

像这样使用 php 内爆方法。

<?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) ""

?>
于 2012-08-10T11:07:09.627 回答