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

mengfk000 2015-01-23 12:06:11
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
}
]
...全文
851 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a303302 2015-01-23
  • 打赏
  • 举报
回复


<?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);
		
		
	?>	
mengfk000 2015-01-23
  • 打赏
  • 举报
回复
注意“:1,2,3是picture的值
sports98 2015-01-23
  • 打赏
  • 举报
回复
当字符串处理吧。祖宁给你的方法你都无法接受,那就用正则当字符串处理吧
mengfk000 2015-01-23
  • 打赏
  • 举报
回复
引用 2 楼 a303302 的回复:


<?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是对象,而不是数组怎么做呢?
mengfk000 2015-01-23
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
你这不是 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
        }
    ]
}
厉害,我直接眼晕了
xuzuning 2015-01-23
  • 打赏
  • 举报
回复
你这不是 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
        }
    ]
}
mengfk000 2015-01-23
  • 打赏
  • 举报
回复
引用 2 楼 a303302 的回复:


<?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);
		
		
	?>	
这样的确转过来了。但如果是对象呢?怎么转

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧