使用該$a
數組中的最後一個鍵一個班輪:
代碼:
var_export(array_replace(array_fill(0,key(array_slice($a,-1,null,true)),null),$a));
輸出:
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => 'fff',
4 => 'sss',
)
這將產生使用array_fill()
默認陣列和$a
數組中的最後關鍵。 [0=>NULL,1=>NULL,2=>NULL,3=>NULL]
(我們知道索引4
已經有一個值,所以我們不需要走得更遠)。
然後只需使用array_replace()
覆蓋$a
中存在元素的空元素。
這裏有一個稍微改進的版本:(Demo)
var_export(array_replace(array_fill(0,max(array_keys($a)),null),$a));
這將尋求「最高」(不只是最後的關鍵),並執行相同的任務。如果你的鍵沒有按順序,這很方便。
或者,如果你想看到一個循環的版本:
$max=max(array_keys($a));
for($i=0; $i<=$max; ++$i){
$result[]=isset($a[$i])?$a[$i]:null;
}
您不能有空鍵;數組鍵必須是整數或字符串值:你的意思是空值嗎? –
'$ keys = max(array_keys($ a)); $ a = array_merge(array_fill(0,$ keys-1,null),$ a);' –
爲什麼你需要那個? – axiac