string(2) "10" -6ren">
gpt4 book ai didi

javascript - PHP对象数组到javascript关联数组

转载 作者:行者123 更新时间:2023-11-30 14:33:05 25 4
gpt4 key购买 nike

我有一个 PHP 对象数组,如下所示:

array(223) {
[0]=>
object(stdClass)#5 (9) {
["id"]=>
string(2) "10"
["name"]=>
string(10) "Cyclops"
["address"]=>
string(13) "GSDG"
}
[1]=>
object(stdClass)#6 (9) {
["id"]=>
string(2) "11"
["name"]=>
string(11) "Professor X"
["address"]=>
string(8) "XX"
}

我需要将其转换为具有以下格式的名称和 ID 的 javascript 数组:

var characters = {
data: [{
"name": "Cyclops",
id: 10
},
{
"name": "Professor X",
id: 11
}
]
}

这是我尝试过的:

首先,我将 PHP 数组转换为 javascript 对象,然后使用 for 循环将每个数组的详细信息推送到 javascript 对象:

var js_data = <?php echo json_encode($chars) ?>;
var characters = [];

for (var i = 0; i < js_data.length; i++) {
characters.push({
data: js_data[i]
})
}

但这会产生一个对象数组,每个对象都有一个“数据”属性。这是 testVariable 的 console.log:

0: {…}
​​​
data: Object { id: "10", name: "Cyclops", … }
​​​
__proto__: Object { … }
​​
1: {…}
​​​
data: Object { id: "11", name: "Professor X", … }

我该如何解决这个问题?

最佳答案

这不是最难的任务,因为您几乎已经有了所需的格式。首先我必须补充一点,您甚至可能不必过滤掉地址字段,因为插件可能会完全忽略它。如果是这种情况,您可以简单地执行此操作

var characters = <?php json_encode(['data' => $chars]); ?>;

如果你真的需要过滤掉地址字段,你可以使用array_map

$chars = array_map(function($item) {
// at this point, you don't need an object, as json_encode do the
// same for objects and associative arrays
return [
"id" =>$item->id,
"name" => $item->name
];
}, $chars);

关于javascript - PHP对象数组到javascript关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50870447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com