php多维数组把value值赋值到key

php中文网
发布: 2016-06-23 13:41:03
原创
1477人浏览过

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

四维时代AI开放平台
四维时代AI开放平台

四维时代AI开放平台

四维时代AI开放平台 66
查看详情 四维时代AI开放平台

回复讨论(解决方案)

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

<?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$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        }    ]}
登录后复制

<?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);					?>	
登录后复制


如果$arr是对象,而不是数组怎么做呢?

当字符串处理吧。祖宁给你的方法你都无法接受,那就用正则当字符串处理吧

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号