如果需要分隔符,如何在元素之间显示分隔符? 我需要显示姓名、职位和公司,如果它们都出现在新闻报价条目中。
并非所有新闻报价都有所有三个项目,可能是:
- 姓名、职务、公司
- 姓名、职务
- 姓名、公司
- 名字
对于每个变体,我需要回显一个分隔符,例如 、 或 |
当前查询如下:
<?php echo $row_article['quote_name'] . ', ' . $row_article['quote_job'] . ', ' . $row_article['quote_company']; ?>
如果这三个都存在,它看起来是正确的。 但是如果只有任何两个存在,我会得到这样的内容:
name, , company
, job title, company
name, job title,
您需要
使用array_filter和内爆的组合。
我举个例子。
<?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
> 内爆是你的朋友。
将每个项目添加到保持数组中,然后使用 implode(", ", array_name) 将它们连接起来。
一种方法是将它们放在数组中
$arr[] = $var1;
$arr[] = $var2;
$arr[] = $var3;
$newarr = array_filter($arr);
echo implode(',', $newarr);
试试这个...
echo implode( ', ', $row_article);
像这样使用 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) ""
?>