有没有办法将多个数组传递给PHP json_encode并使用jQuery解析它?

chr*_*ude 15 php ajax jquery json

现在我有这个PHP:

$columns = array(*/Data*/);
echo json_encode($columns);
Run Code Online (Sandbox Code Playgroud)

这是通过JQuery的AJAX GET请求发送的.

var columns = jQuery.parseJSON(response);
Run Code Online (Sandbox Code Playgroud)

我希望能够发送多个数组,json_encode()有没有办法做到这一点,你将如何用jQuery解析它?

小智 67

当然,你可以发送一个数组数组.PHP关联数组将成为一个javascript对象.

在PHP中:

$data = array();
$data['fruits'] = array('apple','banana','cherry');
$data['animals'] = array('dog', 'elephant');
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)

然后在jQuery上

var data = jQuery.parseJSON(response);
Run Code Online (Sandbox Code Playgroud)

然后你可以做这样的事情来访问这些值

console.log(data.fruits[0]); // apple
console.log(data.animals[1]); // elephant
Run Code Online (Sandbox Code Playgroud)

  • 清晰简洁的答案.但是不需要在JavaScript端招致jQuery的开销.`JSON.parse(response)`将在纯JavaScript中完成. (3认同)

zb'*_*zb' 8

代码应如下所示:

$columns = array(/*Data*/);
$columns1 = array(/*Data1*/);
echo json_encode(array($columns,$columns1));
Run Code Online (Sandbox Code Playgroud)

在jQuery中使用

var columns_array=jQuery.parseJSON(response);
columns=columns_array[0];
columns1=columns_array[1];
Run Code Online (Sandbox Code Playgroud)


小智 6

  $data1 = array();
  $data2 = array();
  $data1[] = array('apple','banana','cherry');
  $data2[] = array('dog', 'elephant');
  echo json_encode(array($data1,$data2));
Run Code Online (Sandbox Code Playgroud)

在阿贾克斯中,

      console.log(response[0][0])//apple
      console.log(response[1][0])//dog.....
Run Code Online (Sandbox Code Playgroud)