Php 如何从JSON数据中获取数组并将其转换为所需的新数组格式?
我得到了以下JSON请求数据:Php 如何从JSON数据中获取数组并将其转换为所需的新数组格式?,php,arrays,json,associative-array,key-value,Php,Arrays,Json,Associative Array,Key Value,我得到了以下JSON请求数据: data = "{\"photo\":[{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/RqAN2jZ7ScC8eOx6ckUE\",\"filename\":\"IMG_0003.JPG\"},{\"fileURL\":\"https:\\/\\/www.filepicker.io\\/api\\/file\\/XdwtFsu6RLaoZurZXPug\",\"filename\":\"IM
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请求数据可能非常大。作为参考,我只在其中使用了两个这样的元素
那么,有人能帮助我以一种高效的方式实现所需的新阵列吗
提前感谢。$data=json\u 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);
我想这会满足你的要求
<?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);
那个穷人怎么会这么穷?劳尔!这是将json数据转换为数组的最快方法。正是他所需要的。但我需要进一步的新数组,以所需的格式。这是我现在面临的主要挑战和问题。这不会给他想要的数组。你是如何得到这个JSON的?你在调用API吗?你能控制它吗?@amrhady:这是来自移动应用程序的请求。但这不是现在的问题。我面临的问题和挑战是如何以稳健高效的方式创建所需格式的新数组?我的观点是,如果您可以控制发布给您的数据,请更改其结构以满足您的需要。而不必在服务器上处理它。
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
)
)
)