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

现在我有这个PHP:

$columns = array(*/Data*/); echo json_encode($columns); 

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

 var columns = jQuery.parseJSON(response); 

我希望能够在json_encode()发送多个数组是否有任何方法可以执行此操作,您将如何使用jQuery解析它?

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

在PHP中:

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

然后在jQuery上

 var data = jQuery.parseJSON(response); 

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

 console.log(data.fruits[0]); // apple console.log(data.animals[1]); // elephant 

代码应如下所示:

 $columns = array(/*Data*/); $columns1 = array(/*Data1*/); echo json_encode(array($columns,$columns1)); 

在jQuery中使用

 var columns_array=jQuery.parseJSON(response); columns=columns_array[0]; columns1=columns_array[1]; 
  $data1 = array(); $data2 = array(); $data1[] = array('apple','banana','cherry'); $data2[] = array('dog', 'elephant'); echo json_encode(array($data1,$data2)); 

在ajax,

  console.log(response[0][0])//apple console.log(response[1][0])//dog..... 

在我的情况下填充所有数组,即$array1_json$array2_json等之后,

 $number_of_array1elements = count($array1_json); $number_of_array2elements = count($array2_json); $number_of_array3elements = count($array3_json); array_unshift($array1_json , $number_of_array1elements); // pushes element to the start of array1_json array_unshift($array2_json , $number_of_array2elements); array_unshift($array3_json , $number_of_array3elements); 

和其他数组类似。

 echo json_encode( array_merge($array1_json, $array2_json, $array3_json) ); 

在.js文件中,使用:

 var val = xmlhttp.responseText; var jsonData = JSON.parse(val); var number_of_array1elements = jsonData[0]; for (var i = 1; i <= number_of_array1elements; i++ ) { // use jsonData[i] to select the required element and do whatever is needed with it } var number_of_array2elements = jsonData[i]; for ( i = i+1; i <= number_of_array1elements+number_of_array2elements+1; i++ ) { // use jsonData[i] to select the required element and do whatever is needed with it }