在foreach元素中添加空间

时间:2017-05-31 09:34:19

标签: php

我有两个foreach操作如下。

    $sql = "select region_name from ".$GLOBALS['ecs']->table('region') . " where region_id in(".$order['province'].",". $order['city'].",".$order['district'].")";
    $address = $GLOBALS['db']->getAll($sql);
    foreach($address as $vo){
        $region .= $vo['region_name'];
    }
    $order['1address'] = $region.$order['1address'];
    return $order;
}

以下是输出数据的示例:

  

AlabamaColorado

我希望它如何

  

阿拉巴马州科罗拉多州

唯一不对的是我无法将阿拉巴马州和科罗拉多州与空白区分开。这可能是一个简单的操作,但如何?有什么想法吗?

非常感谢。

4 个答案:

答案 0 :(得分:2)

你可以在没有预告的情况下尝试这个,

$region = explode(' ', array_column($address, 'region_name'));
$order['1address'] = $region . $order['1address'];

答案 1 :(得分:1)

试试这个:

if ($region == '') {
    $region = $vo['region_name'];
} else {
    $region .= ' ' . $vo['region_name'];
}

答案 2 :(得分:0)

您可以通过在$region$order['1address']变量之间连接空格来实现此目的。

下面的代码段说明了如何实现这一目标:

$order['1address'] = $region . " " . $order['1address'];

答案 3 :(得分:0)

在这种情况下,我更喜欢使用数组然后使用implode

// initialize the array to avoid NOTICES
$region = array();
foreach ( $address AS $vo ) {
    // add each region name to a new element in the array
    $region[] = $vo['region_name'];
}

// implode the regions array to a string separated by a space
$region = implode( ' ', $region );