php数组变成key=%3evalue,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

}

]

回复讨论(解决方案)

注意“: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是对象,而不是数组怎么做呢?

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值