我正在关注JSON请求数据:
data = "{\"photo\":[{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/RqAN2jZ7ScC8eOx6ckUE\",\"filename\":\"IMG_0003.JPG\"},{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/XdwtFsu6RLaoZurZXPug\",\"filename\":\"IMG_0004.JPG\"}]}";
我想从上面的JSON数据中创建一个数组,格式如下:
Array
(
[vshare] => Array
(
[IMG_0003.JPG] => Array
(
[0] => https://www.filepicker.io/api/file/RqAN2jZ7ScC8eOx6ckUE
)
[IMG_0004.JPG] => Array
(
[0] => https://www.filepicker.io/api/file/XdwtFsu6RLaoZurZXPug
)
)
)
实际的JSON请求数据可能很大。为了您的参考,我只使用了两个这样的元素。
那么有人可以帮助我为我提供以有效方式实现所需新阵列的方法吗?
提前致谢。
答案 0 :(得分:0)
我认为这会做你想要的。
<?php
$data = "{\"photo\":[{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/RqAN2jZ7ScC8eOx6ckUE\",\"filename\":\"IMG_0003.JPG\"},{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/XdwtFsu6RLaoZurZXPug\",\"filename\":\"IMG_0004.JPG\"}]}";
$obj = json_decode($data);
$new_ar = array();
foreach ( $obj->photo as $photo ) {
$new_ar['vshare'][$photo->filename] = array($photo->fileURL);
}
print_r($new_ar);
应该生成
Array
(
[vshare] => Array
(
[IMG_0003.JPG] => Array
(
[0] => https://www.filepicker.io/api/file/RqAN2jZ7ScC8eOx6ckUE
)
[IMG_0004.JPG] => Array
(
[0] => https://www.filepicker.io/api/file/XdwtFsu6RLaoZurZXPug
)
)
)
答案 1 :(得分:-1)
$ data = json_decode($ data,true);
好吧,试试这个:
$data = "{\"photo\":[{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/RqAN2jZ7ScC8eOx6ckUE\",\"filename\":\"IMG_0003.JPG\"},{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/XdwtFsu6RLaoZurZXPug\",\"filename\":\"IMG_0004.JPG\"}]}";
$data = json_decode($data,true);
$NewData = false;
foreach($data['photo'] as $k=>$d){
$NewData['vshare'][$d['filename']][] = $d['fileURL'];
}
var_dump($NewData);