【问题标题】:How to create a json string from a php array data如何从 php 数组数据创建 json 字符串
【发布时间】:2015-03-08 05:42:30
【问题描述】:

我希望将具有值的数组转换为 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' => '');

【问题讨论】:

  • 好吧,显然你必须添加缺失的字段(并因此创建一个多维数组)
  • 您需要构建一个与该结构匹配的数组...然后json_encode 它。循环 $images 并使用正确的键/值构建另一个数组。
  • 另外,我认为应该是"filename":"image2.jpg"?
  • 您在问题中链接到 PHP 手册页。该页面会告诉您确切的操作方法。
  • 在图片上使用pathinfo$image = pathinfo('image1.jpg'); $image['basename']; 给你image1 没有扩展名。 php.net/manual/en/function.pathinfo.php

标签: php arrays json


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多