第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

ajax調(diào)用后如何在javascript上以相同的順序顯示數(shù)組id和name值?

ajax調(diào)用后如何在javascript上以相同的順序顯示數(shù)組id和name值?

PHP
回首憶惘然 2021-12-24 15:58:27
我在 php 中有一個數(shù)組,如下所示:    if(count($rows)) {    $new = array();    foreach($rows as $row) {        $new[$row['id']] = $row['sel_date']." - ".date('l',$row['date_timestamp']);             //$myobj->id = $row['id'];    }}現(xiàn)在在 php 頁面上,我有兩個選項可以將我的數(shù)組傳遞回 javascript ajax 功能:print_r($new) 或 echo json_encode($new)但是,當(dāng)我使用 json_encode($new) 從 php 頁面發(fā)送到 javascript 頁面時,它丟失了 php 數(shù)組鍵的順序。例如,我的 php 新數(shù)組如下所示:Array([71] => 07/09/2019 - Saturday[81] => 08/09/2019 - Sunday[83] => 09/09/2019 - Monday[84] => 10/09/2019 - Tuesday[72] => 15/09/2019 - Sunday[73] => 16/09/2019 - Monday[74] => 17/09/2019 - Tuesday[75] => 18/09/2019 - Wednesday)現(xiàn)在在 javscript 方面,如果我使用 JSON.parse(data) 那么順序?qū)⑷缦滤続rray([71] => 07/09/2019 - Saturday[72] => 15/09/2019 - Sunday[73] => 16/09/2019 - Monday[74] => 17/09/2019 - Tuesday[75] => 18/09/2019 - Wednesday[81] => 08/09/2019 - Sunday[83] => 09/09/2019 - Monday[84] => 10/09/2019 - Tuesday)當(dāng) json.parse 重新排列 php 數(shù)組的順序時,我不希望發(fā)生這種情況。那么我應(yīng)該怎么做來維護(hù)訂單以及如何在 javascript 端循環(huán)遍歷 php 返回的數(shù)組,以便我的訂單保持不變?謝謝 & 花了很多時間來完成這項工作,但 json.parse() 不允許我維護(hù) php 數(shù)組的順序,并且不知道在 javascript 端循環(huán)遍歷 php 數(shù)組的任何其他方法。許多人沒有得到正確的答案,因為我在 stackoverflow 上檢查了許多其他帖子,但沒有得到我的答案。所以請不要在這里引用任何其他帖子。
查看完整描述

3 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗 獲得超6個贊

JSON_ENCODE 在 PHP 中保留了鍵順序,但在 Javascript 中并非如此。


在PHP:


$arr = [3 => "A", 1 => "B", 2 => "C"];

echo json_encode($arr);


Output:

{"3":"A","1":"B","2":"C"}

但是如果你嘗試同樣的 Javascript


var obj = {"3":"A","1":"B","2":"C"};

console.log(JSON.stringify(obj));


Output:

"{"1":"B","2":"C","3":"A"}"

要在 javascript 中也保留鍵順序,您需要在 PHP 中創(chuàng)建對象數(shù)組。


$newArr = [];

foreach($arr as $key => $value){

    $newArr[] = [$key => $value];

}


echo json_encode($newArr);


Output:

[{"3":"A"},{"1":"B"},{"2":"C"}]

現(xiàn)在您可以在 Javascript 中訪問相同的內(nèi)容。


arrObj = JSON.parse(str);


arrObj.forEach(function(element) {

    for (strKey in element) {

        console.log(strKey + ' : ' + element[strKey]);

    }

});


Output:

3 : A

1 : B

2 : C


查看完整回答
反對 回復(fù) 2021-12-24
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗 獲得超8個贊

試試這個代碼:

echo json_encode($new,JSON_UNESCAPED_UNICODE);


查看完整回答
反對 回復(fù) 2021-12-24
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗 獲得超12個贊

您可以使用該JSON_FORCE_OBJECT參數(shù)使json_encode輸出成為對象。這將在輸出中包含 javascript 識別的鍵:


echo json_encode(array_values($new), JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES);

輸出:


{

    "71": "07/09/2019-Saturday",

    "81": "08/09/2019-Sunday",

    "83": "09/09/2019-Monday",

    "84": "10/09/2019-Tuesday",

    "72": "15/09/2019-Sunday",

    "73": "16/09/2019-Monday",

    "74": "17/09/2019-Tuesday",

    "75": "18/09/2019-Wednesday"

}

3v4l.org 上的演示


在 JavaScript 中:


let json = '{\

    "71": "07/09/2019-Saturday",\

    "81": "08/09/2019-Sunday",\

    "83": "09/09/2019-Monday",\

    "84": "10/09/2019-Tuesday",\

    "72": "15/09/2019-Sunday",\

    "73": "16/09/2019-Monday",\

    "74": "17/09/2019-Tuesday",\

    "75": "18/09/2019-Wednesday"\

}';

let obj = JSON.parse(json);

console.log(obj[72]);


查看完整回答
反對 回復(fù) 2021-12-24
  • 3 回答
  • 0 關(guān)注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號