如何从 php 数组数据创建 json 字符串


How to create a json string from a php array data

我希望将带有值的数组转换为json_encode格式,但json_encode读取函数时,我找不到获得此结果的选项:

{
    "image1":{"filename":"image1.jpg","alt":"","caption":""},
    "image2":{"image2.jpg","alt":"","caption":""}
}

我的数组是:

$prod['images'] = 'image1.jpg,image2.jpg';
$images = explode(',', $prod['images']);
    foreach($images as $img){
      $get_path = pathinfo($img);
      $path = $get_path['basename'];
      $images_array[] = array(
                              $path => array('filename' => $img, 'alt' => '', 'caption' => '')
                             );
    }
    $final_images = json_encode($images_array);

我的问题是我如何像这样转换为 JSON:

{
    "image1":{"filename":"image1.jpg","alt":"","caption":""},
    "image2":{"image2.jpg","alt":"","caption":""}
}

解决方法为:

$images_array[$path] = array('filename' => $img, 'alt' => '', 'caption' => '');

你在循环中错误地构建了$images_array。 它应该是:

$images_array[$path] = array('filename' => $img, 'alt' => '', 'caption' => '');

注意:确保在循环之外声明$images_array = array();