亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP Array to JSON Array using json_encode();

PHP Array to JSON Array using json_encode();

PHP
catspeake 2019-10-10 14:13:53
我已經對使用內置json_encode();函數制作的數組進行了編碼。我需要像這樣的數組數組格式:[["Afghanistan",32,12],["Albania",32,12]]但是,它返回為:["2":["Afghanistan",32,12],"4":["Albania",32,12]]如何在不使用任何正則表達式欺騙的情況下刪除這些行號?
查看完整描述

3 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

如果您的PHP數組中的數組鍵不是連續的數字,則json_encode() 必須使另一個構造成為一個對象,因為JavaScript數組總是連續地進行數字索引。


array_values()在PHP的外部結構上使用,以丟棄原始的數組鍵,并將其替換為從零開始的連續編號:


例:

// Non-consecutive 3number keys are OK for PHP

// but not for a JavaScript array

$array = array(

  2 => array("Afghanistan", 32, 13),

  4 => array("Albania", 32, 12)

);


// array_values() removes the original keys and replaces

// with plain consecutive numbers

$out = array_values($array);

json_encode($out);

// [["Afghanistan", 32, 13], ["Albania", 32, 12]]


查看完整回答
反對 回復 2019-10-10
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

json_encode()函數將幫助您在php 中將數組編碼為JSON。


如果您直接使用json_encode函數而沒有任何特定選項,則它將返回一個數組。喜歡上面提到的問題


$array = array(

  2 => array("Afghanistan",32,13),

  4 => array("Albania",32,12)

);

$out = array_values($array);

json_encode($out);

// [["Afghanistan",32,13],["Albania",32,12]]

由于您正在嘗試將Array轉換為JSON,那么我建議使用JSON_FORCE_OBJECT作為json_encode中的附加選項(參數),如下所示


<?php

$array=['apple','orange','banana','strawberry'];

echo json_encode($array, JSON_FORCE_OBJECT);

// {"0":"apple","1":"orange","2":"banana","3":"strawberry"} 

?>


查看完整回答
反對 回復 2019-10-10
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

我想補充一下邁克爾·伯科夫斯基(Michael Berkowski)的答案,即如果將數組的順序顛倒,也可能發生這種情況,在這種情況下,觀察該問題會比較棘手,因為在json對象中,順序將按升序排列。


例如:


[

    3 => 'a',

    2 => 'b',

    1 => 'c',

    0 => 'd'

]

將返回:


{

    0: 'd',

    1: 'c',

    2: 'b',

    3: 'a'

}

所以這種情況下的解決方案是array_reverse在將其編碼為json之前使用


查看完整回答
反對 回復 2019-10-10
  • 3 回答
  • 0 關注
  • 565 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號