ホームページ  >  記事  >  バックエンド開発  >  PHP多次元配列はキーに値を代入します

PHP多次元配列はキーに値を代入します

WBOY
WBOYオリジナル
2016-06-23 13:41:031367ブラウズ

PHP 多次元配列でキーに値を割り当てる方法
"image": [
" "local_path": "/upload/14d4aaf3c5ef5b93e6c4c741 8428ea71.jpg",
"picture_id": 1
" " "
picture_id ": 2
},
pg",
"picture_id": 3
"picture_id" }
] 次のように変更します: m "IMAGE": [
{
"1": /upload/14d4aaf3c5EF5EF5B93E6C418428EA71.jpg ",
" picture_id ": 1}}、
{
" 2 ":/upload/14d4AAF3C5E5E F5B93E6C4C741842EA71.jpg "、
2 2 2 4 aaf3c5ef5b93e6c4c7418428ea71.jpg",


ディスカッションへの返信 (解決策)

注: 1、2、 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);					?>	




<?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 が配列ではなくオブジェクトの場合はどうなりますか?

文字列として扱います。 Zu Ning が提供した方法を受け入れられない場合は、文字列処理として正規表現を使用してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。