需要循环遍历数组以确定输出

时间:2013-03-28 22:12:41

标签: php arrays loops for-loop

我想输出这样的地址,如123街道,地址,城市,县,邮政编码

数据存储在数据库中,我需要检查字段中是否有任何内容,所以我知道在地址中输出逗号

$address = array($club['clubAdd1'], $club['clubAdd2'], $clubCity, $club['clubCounty'], $club['clubPostcode']);

3 个答案:

答案 0 :(得分:3)

$parts = array(

  $club['clubAdd1'],
  $club['clubAdd2'],
  $clubCity,
  $club['clubCounty'],
  $club['clubPostcode'],

);

$address = array();

foreach ($parts as $part)
{

  if ('' != $part)
  {
    $address[] = $part;
  }

}

echo implode(', ', $address);

编辑:一行

  echo implode(', ', array_filter($array));

编辑2:更精确的一行

上述问题是0'0'也会被移除,这可能不是理想的行为。这将解决这个问题:

array_filter($array, function ($value)
{
  return strlen(trim($value));
}
);

答案 1 :(得分:1)

通过array_filter()函数运行数组,没有第二个参数,将返回一个没有空元素的数组。

例如:

$address_line = implode(', ',array_filter($address_array));

正如迈克尔所指出的,这也会删除nnumeric 0值。

答案 2 :(得分:1)

单线

echo implode(', ', array_filter(array($club['clubAdd1'], $club['clubAdd2'], $clubCity, $club['clubCounty'], $club['clubPostcode'])))