この記事は公開から6年、最終更新日からも6年経過しています。内容が古くなっている可能性があります。
目次
概要
PHP配列格納と取得の例(その2かな?)
※おまけ:WordPressで実装していますが、ショートコードの話以外はPHPの一般的な内容です。
例1
ソースコード(配列の準備)〜記述方法
function foreachlooptest_setting2() { $i1=1; $i2=2; $i3=3; $i4=4; $test_array=array( '項目A' => array( '説明'=>'項目Aの説明がここに入ります', 'LOOP' => array ( $i1 => array ( '要素1' => '項目A-1-要素1の値', '要素2' => '項目A-1-要素2の値', '要素3' => '項目A-1-要素3の値', ), $i2 => array ( '要素1' => '項目A-2-要素1の値', '要素2' => '項目A-2-要素2の値', '要素3' => '項目A-2-要素3の値', ), ), ), '項目B' => array( '説明'=>'項目Bの説明がここに入ります', 'LOOP' => array ( $i1 => array ( '要素1' => '項目B-1-要素1の値', '要素2' => '項目B-1-要素2の値', '要素3' => '項目B-1-要素3の値', ), $i2 => array ( '要素1' => '項目B-2-要素1の値', '要素2' => '項目B-2-要素2の値', '要素3' => '項目B-2-要素3の値', ), $i3 => array ( '要素1' => '項目B-3-要素1の値', '要素2' => '項目B-3-要素2の値', '要素3' => '項目B-3-要素3の値', ), ), ), '項目C' => array( '説明'=>'項目Cの説明がここに入ります', 'LOOP' => array ( $i1 => array ( '要素1' => '項目C-1-要素1の値', '要素2' => '項目C-1-要素2の値', '要素3' => '項目C-1-要素3の値', ), ), ), ); return $test_array; }
ソースコード(配列をforeachでループさせて表示する)
function foreachlooptest_output2($arrays) { $output_html=''; foreach ($arrays as $array=>$values) { $setsumei = $array . ":<br>" . $arrays[$array]['説明'] . '<br>'; foreach ($arrays[$array]['LOOP'] as $key => $value) { $setsumei = $setsumei . 'No.' . $key . '->' . $value['要素1'] . '<br>'; $setsumei = $setsumei . 'No.' . $key . '->' . $value['要素2'] . '<br>'; $setsumei = $setsumei . 'No.' . $key . '->' . $value['要素3'] . '<br>'; } $output_html=$output_html . $setsumei . '<br>'; } return $output_html; }
ソースコード(本投稿内に上記の結果を表示させるためのショートコードをWordPress内に定義したもの)
※おまけです。
function foreachlooptest_demo2() { $test_array=foreachlooptest_setting2(); return foreachlooptest_output2($test_array); } add_shortcode( 'loop_demo2' , 'foreachlooptest_demo2' );
結果
ここにショートコード「[loop_demo2]」と記述し実際に実行させて表示しています。
—————————–
項目A:
項目Aの説明がここに入ります
No.1->項目A-1-要素1の値
No.1->項目A-1-要素2の値
No.1->項目A-1-要素3の値
No.2->項目A-2-要素1の値
No.2->項目A-2-要素2の値
No.2->項目A-2-要素3の値
項目B:
項目Bの説明がここに入ります
No.1->項目B-1-要素1の値
No.1->項目B-1-要素2の値
No.1->項目B-1-要素3の値
No.2->項目B-2-要素1の値
No.2->項目B-2-要素2の値
No.2->項目B-2-要素3の値
No.3->項目B-3-要素1の値
No.3->項目B-3-要素2の値
No.3->項目B-3-要素3の値
項目C:
項目Cの説明がここに入ります
No.1->項目C-1-要素1の値
No.1->項目C-1-要素2の値
No.1->項目C-1-要素3の値
例2
ソースコード(配列の準備)〜記述方法2
function foreachlooptest_setting3() { $i1=1; $i2=2; $i3=3; $i4=4; $test_array['項目A']=[ '説明'=>'', 'LOOP' => [], ]; $test_array['項目B']=[ '説明'=>'', 'LOOP' => [], ]; $test_array['項目C']=[ '説明'=>'', 'LOOP' => [], ]; $test_array['項目A']['LOOP']=[ $i1 => array ( '要素1' => '項目A-1-要素1の値', '要素2' => '項目A-1-要素2の値', '要素3' => '項目A-1-要素3の値', ), $i2 => array ( '要素1' => '項目A-2-要素1の値', '要素2' => '項目A-2-要素2の値', '要素3' => '項目A-2-要素3の値', ), ]; $test_array['項目B']['LOOP']=[ $i1 => array ( '要素1' => '項目B-1-要素1の値', '要素2' => '項目B-1-要素2の値', '要素3' => '項目B-1-要素3の値', ), $i2 => array ( '要素1' => '項目B-2-要素1の値', '要素2' => '項目B-2-要素2の値', '要素3' => '項目B-2-要素3の値', ), $i3 => array ( '要素1' => '項目B-3-要素1の値', '要素2' => '項目B-3-要素2の値', '要素3' => '項目B-3-要素3の値', ), ]; $test_array['項目C']['LOOP']=[ $i1 => array ( '要素1' => '項目C-1-要素1の値', '要素2' => '項目C-1-要素2の値', '要素3' => '項目C-1-要素3の値', ), ]; $test_array['項目A']['説明']='項目Aの説明がここに入ります'; $test_array['項目B']['説明']='項目Bの説明がここに入ります'; $test_array['項目C']['説明']='項目Cの説明がここに入ります'; return $test_array; }
—————————–
結果
ここにショートコード「[loop_demo3]」と記述し実際に実行させて表示しています。
—————————–
項目A:
項目Aの説明がここに入ります
No.1->項目A-1-要素1の値
No.1->項目A-1-要素2の値
No.1->項目A-1-要素3の値
No.2->項目A-2-要素1の値
No.2->項目A-2-要素2の値
No.2->項目A-2-要素3の値
項目B:
項目Bの説明がここに入ります
No.1->項目B-1-要素1の値
No.1->項目B-1-要素2の値
No.1->項目B-1-要素3の値
No.2->項目B-2-要素1の値
No.2->項目B-2-要素2の値
No.2->項目B-2-要素3の値
No.3->項目B-3-要素1の値
No.3->項目B-3-要素2の値
No.3->項目B-3-要素3の値
項目C:
項目Cの説明がここに入ります
No.1->項目C-1-要素1の値
No.1->項目C-1-要素2の値
No.1->項目C-1-要素3の値