php多維陣列把value值賦值到key

來源:互聯網
上載者:User
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
}
]


回複討論(解決方案)

注意“:1,2,3是picture的值

'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);?>

'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        }    ]}

'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);?>


如果$arr是對象,而不是數組怎麼做呢?

當字串處理吧。祖寧給你的方法你都無法接受,那就用正則當字串處理吧

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.