如何使用PHP制作正确的数组格式

时间:2016-04-14 13:54:14

标签: php arrays

我需要一个帮助。我在一种格式中有一些数组值,但我需要使用PHP将其更改为另一种格式。我正在解释下面的代码。

$sql=mysqli_query($connect,"select * from db_restaurant_basic where member_id='".$member_id."'");
while($row=mysqli_fetch_array($sql)){
    if($row['image'] !=''){
        $mul_image=$row['multiple_image'];
        if($mul_image !=''){
            $arr=explode(',', $mul_image);
            for($i=0;$i<count($arr);$i++){
                $data[]=array("image".$i=>$arr[$i]);
            }
        }
    }
}
$result=array("data"=>$data,"imagepath"=>$imagepath);
echo json_encode($result,JSON_UNESCAPED_SLASHES);

上面的代码给出了以下输出。

{"data":[{"image0":"87az6yooi0ms4i_de021b24.jpg"},{"image1":"d0ub9h8if4dkj4i_a6d6c48a.jpg"},{"image2":"3j9tx0m9xj0dx6r_1080970_1405444569670737_1257617107_n.jpg"}],"imagepath":"http://localhost/spesh/upload/"}

但我需要删除所有key,并在下面给出预期的输出。

{"data":[{"87az6yooi0ms4i_de021b24.jpg"},{"d0ub9h8if4dkj4i_a6d6c48a.jpg"},{"3j9tx0m9xj0dx6r_1080970_1405444569670737_1257617107_n.jpg"}],"imagepath":"http://oditek.in/spesh/upload/"}

请帮我这样做。

2 个答案:

答案 0 :(得分:3)

更改此行:

$data[]=array("image".$i=>$arr[$i]);

对此:

$data[]=$arr[$i];

它将在没有密钥的情况下创建有效的JSON。

结果如下:

{"data":["87az6yooi0ms4i_de021b24.jpg","d0ub9h8if4dkj4i_a6d6c48a.jpg",...

您甚至可以进一步减少代码,因为您基本上是在复制数组$arr

while($row=mysqli_fetch_array($sql)){
    if($row['image'] !=''){
        $mul_image=$row['multiple_image'];
        if($mul_image !=''){
            $data=explode(',', $mul_image);
        }
    }
}

这将产生相同的结果。

答案 1 :(得分:1)

不要将新数组推送到数据数组 - 只有值。

$sql=mysqli_query($connect,"select * from db_restaurant_basic where member_id='".$member_id."'");
while($row=mysqli_fetch_array($sql)){
    if($row['image'] !=''){
        $mul_image=$row['multiple_image'];
        if($mul_image !=''){
            $arr=explode(',', $mul_image);
            for($i=0;$i<count($arr);$i++){
                $data[] = $arr[$i]; // only value is pushed into data array
            }
        }
    }
}
$result=array("data"=>$data,"imagepath"=>$imagepath);
echo json_encode($result,JSON_UNESCAPED_SLASHES);