我想显示短划线( - ),如果我的数组在插入后是空的。以下是我到目前为止的尝试。
数据在数组中的结果 - > https://repl.it/HIUy/0
<?php
$array = array(1,2);
$result = array();
foreach ($array as $curr_arr) {
$result[] = $curr_arr;
}
echo 'Array With Data - ' . implode(',', $result);
//Result : Array With Data : 1,2
?>
数组中没有数据的结果 - &gt; https://repl.it/HIVE/0
<?php
$array = array();
$result = array();
foreach ($array as $curr_arr) {
$result[] = $curr_arr;
}
echo 'Array Without Data - ' . implode(',', $result);
//Result : Array With Data - :
?>
正如您在第二个结果中看到的那样,我无法打印任何内容,因为我的数组是空白的,因此我无法打印任何内容。
但是,我想使用implode
打印短划线( - ),只使用我已尝试过的array_filter
,但我无法这样做。在这里,我尝试了这个https://repl.it/HIVP/0
<?php
$array = array();
$result = array();
foreach ($array as $curr_arr) {
$result[] = $curr_arr;
}
echo 'Array With Data : ' . implode(',', array_filter($result));
//Result : Array With Data :
?>
有人可以指导我如何实现这一目标吗?
谢谢
答案 0 :(得分:4)
您可以检查数组是否为空,然后返回/回显Dash:
if(!empty($array)){
// Array contains values, everything ok
echo 'Array with data - ' . implode('yourGlueHere', $array);
} else {
// Array is empty
echo 'Array without data -';
}
如果您想将它放在一行中,您可以执行以下操作:
echo 'Array with' . empty($array) == false ? '' : 'out' . 'data - ' . empty($array) == false ? implode('glue', $array) : '';
答案 1 :(得分:0)
Tobias F.和Gopi Chand发布的答案是正确的。
方法1 :
我建议你这样做会帮助你(基本上使用三元运算符)。
因为这里没有其他方法可以使用内爆函数。
echo empty($result) ? '-' : implode(',',$result);
方法2
使用这样的辅助函数。
function myImpllode($glue = "", $array = [])
{
if(!empty($array)){
// Array contains values, everything ok
return implode($glue, $array);
} else {
// Array is empty
return '-';
}
}