为了账号安全,请及时绑定邮箱和手机立即绑定

从 php json_encode() 调用 javascript 变量时出错

从 php json_encode() 调用 javascript 变量时出错

PHP
MM们 2023-04-28 14:49:19
我在从 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拥有你想要的回声。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信