如何将PHP JSON转换为JS数组

时间:2015-09-19 10:40:45

标签: javascript php arrays json

美好的一天,

我有这个数据,我从我的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]

我的代码中是否有我遗漏的内容或我应该如何做到这一点?感谢..

3 个答案:

答案 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;
});