web関連

【php】foreachを使って複数の要素を配列に入れてループさせた時の備忘録

【php】foreachを使って複数の要素を配列に入れてループさせた時の備忘録

同じコードをいちいち書くとソースコードが長くなるのでPHPのforeachでループさせた時の備忘録
会社さんの一覧を作った時に使ったやつ

複数の要素をforeachを使って取得する方法

php5.4以上の時の書き方

<?php 
$array[] = 
array(
	// 「key(キー)」 => 「value(値)」 
	'name'=>'○○会社', 
	'place'=>'埼玉県さいたま市' , 
	'img'=>'画像のURLが入るよ' ,
	'url'=>'リンク先のURLが入るよ'
);
$array[] = 
array(
	// 「key(キー)」 => 「value(値)」 
	'name'=>'××会社', 
	'place'=>'東京都渋谷区' , 
	'img'=>'画像のURLが入るよ' ,
	'url'=>'リンク先のURLが入るよ'
);
foreach ($array as $value) :
 ?>
<a href="<?php echo $value['url']; ?>">
	<img src="<?php echo $value['img']; ?>">
	<?php echo $value['name']; ?>
	<?php echo $value['place']; ?>
</a>
<?php endforeach; ?>

「$array[]」に同じ要領で追加していけばOK

配列って最初に「この変数は配列で使うよー」って宣言しないといけないと思っていたけど「$array[]」がその役割になってんかな?

php5.3以下の時の書き方

お客さんのサーバー環境によって使わざるを得ないから調べた

<?php 
$array = array();
array_push($array,
	array(
		// 「key(キー)」 => 「value(値)」 
		'name'=>'○○会社', 
		'place'=>'埼玉県さいたま市' , 
		'img'=>'画像のURLが入るよ' ,
		'url'=>'リンク先のURLが入るよ'
	)
);
array_push($array,
	array(
		// 「key(キー)」 => 「value(値)」 
		'name'=>'××会社', 
		'place'=>'東京都渋谷区' , 
		'img'=>'画像のURLが入るよ' ,
		'url'=>'リンク先のURLが入るよ'
	)
);
foreach ($array as $value) :
 ?>
<a href="<?php echo $value['url']; ?>">
	<img src="<?php echo $value['img']; ?>">
	<?php echo $value['name']; ?>
	<?php echo $value['place']; ?>
</a>
<?php endforeach; ?>
「$array[]」って「array_push」の役割するんすね
php5.3以下の時だと配列の宣言しないと駄目だった

1度で複数の要素を配列に入れてforeachで出力する方法

いちいち「$array[]」や「array_push()」で配列を追加せずに済む方法を調べた

<?php 
$array = [
	'○○会社'=>['埼玉県さいたま市','画像のURLが入るよ','リンク先のURLが入るよ'],
	'××会社'=>['東京都渋谷区','画像のURLが入るよ','リンク先のURLが入るよ']
];
foreach($array  as $key => $value) : ?>
	<a href="<?php echo $value[2]; ?>">
		<img src="<?php echo $value[1]; ?>">
		<?php echo $key; ?>//会社名
		<?php echo $value['0']; ?>//所在地
	</a>
<?php endforeach; ?>

文字をkey(キー)にしてvalue(値)を設定した配列は「連想配列」というらしい

こっちの方がシンプルでいいかも

おまけ

配列の中に配列がある配列を出力しようとするとforeachを2回かけないといけないみたいだからメモ

<?php 
$array = array(
	'キャッチコピーとか入れるよ01' => array(
		'name'=>'○○会社', 
		'place'=>'埼玉県さいたま市' , 
		'img'=>'画像のURLが入るよ' ,
		'url'=>'リンク先のURLが入るよ'
	),
	'キャッチコピーとか入れるよ02' => array(
		'name'=>'××会社', 
		'place'=>'東京都渋谷区' , 
		'img'=>'画像のURLが入るよ' ,
		'url'=>'リンク先のURLが入るよ'
	)
);
foreach($array  as $key1 => $value1) : ?>
	<h2><?php echo $key1; ?></h2>// 「キャッチコピーとか入れるよ」の部分が出力される
	<?php foreach($value1 as $key2 => $value2) : ?>

		<?php echo $key2; ?>// name,place,img,urlが出力される
		<?php echo $value2; ?>// ○○会社、××会社とかが出力される
	  
	<?php endforeach; ?>
<?php endforeach; ?>

多次元配列?とかいうらしい
一番最初のも多次元配列?

使いどころがわからない(知識不足)

配列調べるに至ったコードが一番最初のコードだったから頭でっかちな備忘録になっちゃった
でも調べれば調べるほど配列は使いどころがよくわからなくなっていく
バックエンドのエンジニアさんが使うイメージ
とりあえずソースコードが長くなって可読性が悪くなることが避けられればなんでもいいや

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。