如果没有值,则使用默认值进行内爆

时间:2017-04-13 12:31:42

标签: php

我想显示短划线( - ),如果我的数组在插入后是空的。以下是我到目前为止的尝试。

数据在数组中的结果 - > 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 :    
?>

有人可以指导我如何实现这一目标吗?

谢谢

2 个答案:

答案 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 '-';
   }
}