こんにちはフロントエンドエンジニアのまさにょんです!
今回は、PHPのforeach文の使い方(配列・オブジェクトからkeyとvalueを取り出す方法)について解説していきます。
目次
foreach文の使い方(配列・オブジェクトからkeyとvalueを取り出す方法)
PHPのforeachでは、配列だけでなくObjectやインスタンスからkeyとvalueを1つずつ取り出すことができます。
foreachでvalueだけ1つずつ取り出す
foreach( 配列 as $変数名) { ・・・処理記述・・・ } の形式で、配列またはObjectから value 部分だけを1つずつ取り出してくれます。
<?php
$robotama_array = ['ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機'];
// 記法-1: value だけ取り出す foreach
foreach($robotama_array as $value) {
echo $value . "\n";
}
// [ 実行結果 ]
// ロボ玉試作1号機
// ロボ玉試作2号機
// ロボ玉試作3号機
foreachで配列からkeyとvalueを1つずつ取り出す
foreach( 配列 as $key変数名 => $value変数名) { ・・・処理記述・・・ } の形式で、配列またはObjectから「key : value」のセットを1つずつ取り出してくれます。
<?php
// 記法-2: 「key: value」両方、取り出す foreach
foreach($robotama_array as $key => $value) {
echo "keyは{$key}, valueは{$value}" . "\n";
}
// [ 実行結果 ]
// keyは0, valueはロボ玉試作1号機
// keyは1, valueはロボ玉試作2号機
// keyは2, valueはロボ玉試作3号機
$robotama_developer = [
'robotama-1' => 'ロボ玉試作1号機',
'robotama-2' =>'ロボ玉試作2号機',
'robotama-3' =>'ロボ玉試作3号機'
];
// 連想配列の「key: value」を取り出す。
foreach($robotama_developer as $key => $value) {
echo "keyは{$key}, valueは{$value}" . "\n";
}
// [ 実行結果 ]
// keyはrobotama-1, valueはロボ玉試作1号機
// keyはrobotama-2, valueはロボ玉試作2号機
// keyはrobotama-3, valueはロボ玉試作3号機
foreachでObjectからkeyとvalueを1つずつ取り出す
PHPのforeachでは、Objectからkeyとvalueを1つずつ取り出すことができます。
<?php
$robotama_developer = (object)[
'robotama-1' => 'ロボ玉試作1号機',
'robotama-2' =>'ロボ玉試作2号機',
'robotama-3' =>'ロボ玉試作3号機'
];
// Objectからkeyとvalueを1つずつ取り出す
foreach($robotama_developer as $key => $value) {
echo "keyは{$key}, valueは{$value}" . "\n";
}
// [ 実行結果 ]
// keyはrobotama-1, valueはロボ玉試作1号機
// keyはrobotama-2, valueはロボ玉試作2号機
// keyはrobotama-3, valueはロボ玉試作3号機
foreachでClassのインスタンスからkeyとvalueを1つずつ取り出す
Objectに対してforeachが使えるということは、もちろんClassのインスタンスに対してもforeachは有効です。
次のSampleCodeでは、foreachでClassのインスタンスからkeyとvalueを1つずつ取り出しています。
ただし、private
の値は、foreachでは取り出せないので注意です。
<?php
class Robotama{
public $name = "ロボ玉";
public $like = "ひまたね";
private $puru = true;
public $from = "グンマー帝国";
private $rival = "白桃さん";
public $cost = 5000;
}
$robotama = new Robotama();
foreach($robotama as $key => $value) {
echo "keyは{$key}, valueは{$value}" . "\n";
}
// [ 実行結果 ]
// keyはname, valueはロボ玉
// keyはlike, valueはひまたね
// keyはfrom, valueはグンマー帝国
// keyはcost, valueは5000
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!