2017-05-31 169 views
1

我有兩個foreach操作,如下所示。在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

我多麼希望它是

阿拉巴馬州科羅拉多

唯一錯誤的是我無法用空白區分阿拉巴馬州和科羅拉多州。這可能是一個簡單的操作,但如何?任何想法?

非常感謝。

+0

$ region。=「」。$ vo ['region_name']; – Jens

回答

1

試試這個:

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

你可以簡單地做你的$region$order['1address']變量之間串聯的空間。

下面的代碼片段展示瞭如何做到這一點:

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

你可以試試這個沒有的foreach,

$region = explode(' ', array_column($address, 'region_name')); 
$order['1address'] = $region . $order['1address']; 
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);