閲覧数:1116
投稿日:2020-02-27
更新日:2020-02-27
目的
・配列キーに特定文字が含まれていたら、抽出して、新しい配列を作成する
条件
・'xxxx_数字'キーが複数ある
・数は変動する
コード例
・'xxxx_数字'キーの数だけ、数字毎に分けて二次元配列へ格納する
コード
$dataAry =array (
'_token' => 'xxxx',
'entry_id' => '1',
'user_id' => '1',
'site_id' => '',
'entry_title' => 'タイトル',
'entry_description' => '',
'category' => '1',
'state' => '5',
'tweet_create_datetime' => '',
'title_1' => 'タイトル1',
'url_1' => 'URL1',
'content_1' => 'コンテンツ1',
'note_1' => '',
'title_2' => 'タイトル2',
'url_2' => 'URL2',
'content_2' => 'コンテンツ2',
'note_2' => '',
);
$resultAry=[];
array_walk($dataAry,function($v,$k) use (&$resultAry){
$m=[];
$ret = preg_match('/^(.+?)_(\d+)$/',$k,$m);
if($ret){
$m1 = $m[1];//1番目にマッチする([a-z])の部分
$m2 = (int)$m[2]-1;//2番目にマッチする([0-9])の部分
if(!isset($resultAry[$m2])) $resultAry[$m2]=[];
$resultAry[$m2][$m1]=$v;
}
});
var_export($resultAry);結果
array (
0 =>
array (
'title' => 'タイトル1',
'url' => 'URL1',
'content' => 'コンテンツ1',
'note' => '',
),
1 =>
array (
'title' => 'タイトル2',
'url' => 'URL2',
'content' => 'コンテンツ2',
'note' => '',
),
)