Php 如果数组中的元素数超过3,则返回json_encode()
我有一个包含以下元素的数组:Php 如果数组中的元素数超过3,则返回json_encode(),php,arrays,json,Php,Arrays,Json,我有一个包含以下元素的数组: array(4) { [0]=> array(2) { ["home"]=> string(5) "Niort" ["away"]=> string(12) "Valenciennes" } [1]=> array(2) { ["home"]=> string(15) "Kuban Krasnodar" ["away"]=> string(3) "Ufa" } [2]=> array(2) { ["home"
array(4) {
[0]=> array(2) { ["home"]=> string(5) "Niort" ["away"]=> string(12) "Valenciennes" }
[1]=> array(2) { ["home"]=> string(15) "Kuban Krasnodar" ["away"]=> string(3) "Ufa" }
[2]=> array(2) { ["home"]=> string(17) "Fratangelo, Bjorn" ["away"]=> string(13) "Bhambri, Yuki" }
[3]=> array(2) { ["home"]=> string(13) "VfL Wolfsburg" ["away"]=> string(15) "Bayern Mnchen" }
}
我正在尝试将其转换为JSON数组,其中包含:
while ($row = $result->fetch_assoc()) {
array_push($events, $row);
}
echo json_encode($events);
它不起作用。
但是,当我将元素的数量减少到3个或更少时,它工作得非常好
为什么会这样?如何转换更多项目?您的php数组和代码应该如下所示:
json_encode对于任意大小的数组都有效。它可能只是不起“预期的”作用。但是,由于实际产出没有显示为预期结果,那么“预期”是什么意思呢?从这行-echo json_encode$events;在我的例子中,我期望得到以下结果:[{home:Niort,away:Valenciennes},{home:Kuban Krasnodar,away:Ufa},{home:Fratangelo,Bjorn,away:Bhambri,Yuki}{home:VfL Wolfsburg,away:Bayern Mnchen}]但我不明白:我也没有得到任何其他可以指出我错误的信息。但是,当我尝试用更少的元素执行相同操作时,我会得到“预期”结果。只要有足够的内存来构建json字符串,json_encode将处理您抛出的任何内容。它不在乎数组中有多少个元素。如果你有一个万亿项数组和足够的内存来保存它,json_encode将为你编码。我格式化了代码并做了一些语法校对。这篇文章可以进一步改进,具体描述什么不起作用,以及故障是如何发生的。欢迎发送错误消息。考虑启用它,这样我们就可以帮助你。我试着把我的数组转换成你的变体。我得到了同样的结果。@ IvanDenisovich,我得到这个结果[ {家乡:Niort,离开:ValeCiNeNe},{家:Kuban Krasnodar,OW:Ufa },{家:Fratangelo,比约恩,Foe:Bhambri,},{首页:VFL沃尔夫斯堡,WOR:拜仁Munj}},那是你的预期结果吗?是的,这是预期的结果。问题可能是我没有足够的内存,如上所述。@IvanDenisovich重新启动服务器,然后再试一次。
<?php
$array1= array(
array( "home"=> "Niort" ,"away"=> "Valenciennes" ),
array( "home"=> "Kuban Krasnodar", "away"=> "Ufa" ),
array( "home"=> "Fratangelo, Bjorn", "away"=> "Bhambri, Yuki" ),
array( "home"=> "VfL Wolfsburg", "away"=> "Bayern Mnchen" )
);
echo json_encode($array1);