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 が提供した方法を受け入れられない場合は、文字列処理として正規表現を使用してください