PHP配列格納と取得の例(その2かな) #PHP #works

  • スポンサーリンク

  • スポンサーリンク

この記事は公開から5年、最終更新日からも5年経過しています。内容が古くなっている可能性があります。

概要

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の値

  • スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA