【PHP入門】foreachの使い方(配列・オブジェクトからkeyとvalueを取り出す方法)

php-foreach

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、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!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

PHP / Laravel書籍

最近の投稿