我在从 php 调用 javascript 变量时遇到问题json_encode()。在 javascript 中,我无法获得 array.length 因为有标签1:。我想要[res_tmp]数组获取像[sample]数组一样的格式(没有标签数字数组,例如:1:,2:)。感谢您的帮助。回声(假):res_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条经验 获得超7个赞
这是一个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 关注
- 126 浏览
添加回答
举报
0/150
提交
取消