unset 數組 json_encode 數據格式

今天 遇到了個很有趣的問題 

$arr = array(array(1,23),array(1,23),array(1,23));

var_dump($arr);
print_r(json_encode($arr));
echo '<br/>';
foreach($arr as $k=>$v)
{
	if ($k == 1)
	{
		unset($arr[$k]);
	}
}

var_dump($arr);
print_r(json_encode($arr));die;

這段代碼執行完後的結果是



可以看到 unset後 在json_encode數據格式變了,研究了下, 大概是因爲數組 被從中間去掉了個元素 爲了保證數組的元素順序被加上了數字key這樣,以確認去掉了一個元素 二不使key發生變化可以看 綠色部分, 那麼 怎麼解決呢 只需一行代碼搞定

在foreach之後加

$arr = array_values($arr);

將數組重新索引了下 就好了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章