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


How to make proper array format using PHP

我需要一个帮助。我有一些一种格式的数组值,但我需要使用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/"}

请帮我做这个。

更改此行:

$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);
        }
    }
}

这将产生相同的结果。

只是不要向数据数组推送新数组——只推送值。

$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);