【发布时间】: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