2016-08-05 16 views
-1
$user = $stmt->fetchAll(PDO::FETCH_ASSOC); 
print_r($user); 

我得到的輸出是:關聯數組鍵值對用分隔符

Array 
(
    [0] => Array 
     (
      [ID] => US101 
      [FirstName] => Ramesh 
      [MobileNo] => 3125627127 
      [City] => Bombay 
     ) 

    [1] => Array 
     (
      [ID] => US102 
      [FirstName] => Ravindar 
      [MobileNo] => 45624152627 
      [City] => Culcatta 
     ) 
) 

我需要的輸出是:

Array 
(
    [US101] => US101 | Ramesh | 3125627127 | Bombay 
    [US102] => US102 | Ravindar | 45624152627 | Culcatta 
) 

回答

2

試試這個:

$formatted = []; 
foreach($user as $v) 
{ 
    $formatted[$v['ID']] = implode(' | ', $v); 
} 

print_r($formatted); 
+0

哇美妙。完美的答案。非常感謝:) –

0

你應該使用CONCAT_WS,如下所示

select CONCAT_WS('|',ID,FirstName,MobileNo,City) from table_name; 

然後輸出將被Concat的列的值

0
$userModified = array_map(function($item) { 
    return [ 
     $item['id'] => implode($item, '|') 
    ]; 
}, $user); 
+0

儘管這段代碼可以解決這個問題,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高質量您的帖子。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要使用解釋性註釋來擠佔代碼,因爲這會降低代碼和解釋的可讀性! – FrankerZ