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 = 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是对象,而不是数组怎么做呢? 当字符串处理吧。祖宁给你的方法你都无法接受,那就用正则当字符串处理吧