2015-04-30 27 views
2

我有一個奇怪的問題。我有這樣一段代碼:使用implode PHP打印數組中的NULL字段?

$array = array('abc',null,'def',null); 
$implode = implode(",", $array); 
var_dump($implode); 

,其結果是:

string 'abc,,def,' (length=9) 

有什麼辦法,我可以打印null作爲一個字符串?我的意思是,有些事情是這樣的:

string 'abc,null,def,null' (length=17) 

非常感謝!

編輯:

謝謝大家的響應。我認爲他們是一樣的,但發展不同。我想在array_map,但我不知道如何使用它。謝謝!

回答

6

你可以使用array_walk到每一個項目去了數組中,並把它們串,如果它們是空的:

$array = array('abc',null,'def',null); 
function x(&$el) { 
    $el = ($el === null) ? 'null' : $el; 
} 
array_walk($array, 'x'); 
$implode = implode(",", $array); 
var_dump($implode); 
+0

我正要張貼相同的解決方案。太快4我;) – Yoluk

1

您可以在之前映射空值。

$arrayMapped = array_map(function ($val) { return $val != null ? $val : 'null';}, $array); 

$implode = implode(",", $arrayMapped);