实际上,我在 PHP 中创建一个数组,然后将其传递给 JavaScript 函数。
到目前为止一切顺利。函数接收的数组如下:
[[{"firstname": "Micheal", "lastname": "Brown"}], [{"car": "Ford", "model": "Fiesta"}]]
我的问题是获取所有第一个数组,即:{"firstname": "Micheal", "lastname": "Brown"}
还有第二个数组:{"car": "Ford", "model": "Fiesta"}
我尝试使用 alert (array [0])
但它只显示了这个 [
我该怎么做?
我来解释一下:
这是我的 php 文件:
class UserClasses
{
public $firstname;
public $lastname;
}
class CarClasses
{
public $car;
public $model;
}
if(isset($_POST['name'])){
populate($_POST['name']);
}
function populate(){
//I abbreviated the function for simplicity
$arrayUser = array();
$arrayCar = array();
$user = new UserClasses();
$user->firstname = "Micheal";
$user->lastname = "Brown";
array_push($arrayUser, $user);
$car = new CarClasses();
$car->car = "Ford";
$car->model = "Fiesta";
array_push($arrayCar, $car);
$arrayFinal = array($arrayUser, $arrayCar);
print json_encode($arrayFinal);
}
这是 javascript 中的函数:
//Ajax for calling php function
$.post('Classes.php', { name: name }, function(data){
var array = JSON.parse(data);
var arrayT = array[0];
alert(arrayT);
});
最佳答案
以下是您的代码所发生的情况:您正在访问 JSON 字符串的第一个元素,因此我猜测您将获得其第一个字符:[
。
在访问字符串之前,您需要将其转换为实际的数组!
使用JSON.parse
:
The JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string.
例如你可以这样做:
const json = '[[{"firstname": "Micheal", "lastname": "Brown"}], [{"car": "Ford", "model": "Fiesta"}]]'
// that's what you have
console.log(json[0])
// that's what you want
array = JSON.parse(json)
console.log(array[0])
关于javascript - PHP Javascript - 数组多维错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50835441/