欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-10 18:08:54
...
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 = $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是对象,而不是数组怎么做呢?

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