我有一个多维数组
$output=Array
(
[0] => Array
(
[0] => mov_1
[1] => MY FAIR LADY
)
[1] => Array
(
[1] => mov_10
[2] => love actually
)
)
and two variables
$avlblQnty=50
$success= true
当我通过json
发送这些数据时echo json_encode( array('movieData'=>$output,'stock'=>$avlblQnty,'sucess'=>$success));
它返回
{"movieData":[["mov_1","MY FAIR LAD],{"1":"mov_10","2":"love actually"}],"stock":0,"success":true}
但我需要正确的json编码数据,以便我可以使用(movieData.length)
在movieData上创建一个选择框,
所以我想要以下面的格式编辑json编码数据,这样我就可以成功回复
{"movieData":[{"mov_1":"MY FAIR LAD,mov_10":"love actually"}],"stock":0,"success":true}
我想知道如何通过json一起发送一个数组(多维/关联)和一些变量?
我已经正确地制作了我的数组,之后我得到了json编码数组
{"movieData":{"mov_10":"love actually","mov_1":"my fair lady"},"stock":20,"success":true}
现在如何知道moveData
的长度?我在jquery上使用data.movieData.length
我得到了这些值,但它返回undefined
答案 0 :(得分:2)
MovieData是一个对象,不再是一个数组,因此您必须访问所有属性 并手动计算,如下面的代码
var theLength=0;
for(var propertyName in movieData) {
// filtering out inherited properties
if (movieData.hasOwnProperty(propertyName)) {
theLength++;
}
}
// now theLength represent the length of the array
答案 1 :(得分:0)
要将更多变量传递给json_encode(),您只需要为传入的数组添加另一个级别,并为不同的值添加顶级部分。
如果您的电影数据数组位于$ movie_data中,那么您将创建如下数组:
$output_for_json = array(
'movie_data' => $movie_data,
'stock' => $stock,
'success' => $success
);
解析json时,您需要使用数据更改代码以引用数组的特定部分,例如'movie_data'