美好的一天,
我有这个数据,我从我的PHP查询得到它当前是一个JSON格式,现在我想将它转换为数组,所以我可以在我的PDF上使用它。我怎么能这样做?
所以为了让我在我使用的javascript上使用它
var inventory = <?php echo json_encode($inventory); ?> ;
我的JSON数据:
var inv = [
{"xid":96,"xitem":"CARBOCISTEINE 500MG CAP (MYREX) BOX",
"itemId":852,
"price":3,
"mprice":3
},
{"xid":253,"xitem":"CIPROFLOXACIN 500MG TAB (PROSELOC\/FLAMINGO)",
"itemId":1165,
"price":0,
"mprice":0
}];
我试过
var rows = <?php echo json_encode($inventory); ?> ;
var arr = $.map(rows, function(el) { return el; });
和
当我console.log(arr);
时
我仍然得到对象结构而不是我想要的数组结构。
我也试过
var result = [];
for(var i in rows)
result.push([i, rows [i]]);
console.log(result);
但它给了我
[ ["0",Object { xid=96,xitem="CARBOCISTEINE 500MG CAP (MYREX) BOX",itemId=852,price=3,mprice=3}],
["1",Object{etc..}]];
代替
我希望它有像
这样的结构 [96,"CARBOCISTEINE 500MG CAP (MYREX) BOX",852,3,3],
[253,"CIPROFLOXACIN 500MG TAB (PROSELOC\/FLAMINGO)",1165,0,0]
我的代码中是否有我遗漏的内容或我应该如何做到这一点?感谢..
答案 0 :(得分:1)
您可以使用:
var arr = inv.map(function (obj) { return [obj.xid, obj.xitem, obj.itemId, obj.price, obj.mprice]})
console.log(arr);
如果您对地图回调函数进行了少量更改,那么就可以了。
答案 1 :(得分:0)
你可以做到
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';
}
$class = new MyClass();
$arr = [];
foreach($class as $key => $value) {
$arr[] = $value;
}
echo json_encode($arr); //here's to check
PHP中的- 您可以创建这样的对象集合并首先迭代此集合以获得您想要的结果
答案 2 :(得分:0)
您不必对密钥进行硬编码。以下作品:
var arrayFromObject = inv.map(function (item) {
var arr = [];
for (var p in item) arr.push(item[p])
return arr;
});