閲覧数:806
投稿日: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' => '', ), )