当前位置: 代码迷 >> PHP >> php多维数组把value值赋值到key,该怎么处理
  详细解决方案

php多维数组把value值赋值到key,该怎么处理

热度:33   发布时间:2016-04-28 17:54:15.0
php多维数组把value值赋值到key
php多维数组把value值赋值到key,改成这种效果,怎么做
   "image": [
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 1
                },
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 2
                },
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 3
                }
            ]
改成:
   "image": [
                {
                    "1": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 1
                },
                {
                    "2": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 2
                },
                {
                    "3": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 3
                }
            ]
------解决思路----------------------


<?php


$arr=array(
array(
'local_path' =>'aaaaa',
'picture_id' =>1
),
array(
'local_path'=>'bbbbbbb',
'picture_id'=>2
),
array(
'local_path'=>'ccccccc',
'picture_id'=>3
),
);

function change($arrr,$a=0){
foreach($arrr as $key=>$value){
$arr[$a][$value['picture_id']]=$value['local_path'];
$arr[$a]['picture_id']=$value['picture_id'];
$a++;

}
return $arr;
}


$arry=change($arr);

print_r($arry);


?>


------解决思路----------------------
你这不是 php 的数组,是 json
$s =<<< TXT
 "image": [
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 1
                },
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 2
                },
                {
                    "local_path": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
                    "picture_id": 3
                }
            ]
TXT;
$a = json_decode('{'. $s .'}', 1);

foreach($a['image'] as &$item) {
  $item = array(
    $item['picture_id'] => $item['local_path'],
    'picture_id' => $item['picture_id']
    );
}
print_r($a);
Array
(
    [image] => Array
        (
            [0] => Array
                (
                    [1] => /upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg
                    [picture_id] => 1
                )

            [1] => Array
                (
                    [2] => /upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg
                    [picture_id] => 2
                )

            [2] => Array
                (
                    [3] => /upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg
                    [picture_id] => 3
                )

        )

)
还原回 json
echo json_encode($a, JSON_PRETTY_PRINT 
------解决思路----------------------
 JSON_UNESCAPED_SLASHES);
{
    "image": [
        {
            "1": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
            "picture_id": 1
        },
        {
            "2": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
            "picture_id": 2
        },
        {
            "3": "/upload/14d4aaf3c5ef5b93e6c4c7418428ea71.jpg",
            "picture_id": 3
        }
    ]
}
  相关解决方案