我在從 php 調用 javascript 變量時遇到問題json_encode()。在 javascript 中,我無法獲得 array.length 因為有標簽1:。我想要[res_tmp]數組獲取像[sample]數組一樣的格式(沒有標簽數字數組,例如:1:,2:)。感謝您的幫助?;芈暎伲簉es_tmp: {0: null,1: {name: "AAA",sort: 1},2: {name: "DDD",sort: 2}, ...回聲(我希望):res_tmp: { null,{name: "AAA",sort: 1},{name: "DDD",sort: 2}, ...這是我的代碼: $tmp = [ [ "name" => "1.AAA", "sort" => 1, ],[ "name" => "10.CCC", "sort" => 10, ],[ "name" => "11.BBB", "sort" => 11, ],[ "name" => "2.DDD", "sort" => 2, ],[ "name" => "3.EEE", "sort" => 3, ], ];for ($i=0; $i < count($tmp); $i++) { $res_tmp[ $tmp[$i]['sort'] ] = $tmp[$i];}$nul = [0,4,5,6,7,8,9,12];for ($j=0; $j < count($nul); $j++) { $res_tmp[ $nul[$j] ] = null;}$val = [ "sample" => $tmp, "res_tmp" => $res_tmp, ];echo json_encode($val);// echo "<pre>",print_r($val),"</pre>";
1 回答

largeQ
TA貢獻2039條經驗 獲得超8個贊
這是一個javascript方法。
您在這里擁有的不是數組而是JSON 字典,它是一個對象。您可以使用 Object.keys 在 JavaScript 中獲取它的長度:
let keys = Object.keys(res_tmp);
這將為您提供鍵數組。您可以迭代它并訪問這些值。像這樣:
let res_tmp = {
? 0: null,
? 1: {
? ? name: "AAA",
? ? sort: 1
? },
? 2: {
? ? name: "DDD",
? ? sort: 2
? }
}
let keys = Object.keys(res_tmp);
let arr = [];
for (let j=0;j<keys.length;++j)
{
? let item = res_tmp[keys[j]];
? arr.push(item);
}
現在arr擁有你想要的回聲。
- 1 回答
- 0 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消