35

オブジェクトの配列があります。runningprint_r()は以下の出力を返します。

Array
(
    [0] => stdClass Object
        (
            [sm_id] => 1
            [c_id] => 1
        )
    [1] => stdClass Object
        (
            [sm_id] => 1
            [c_id] => 2
        )
)

結果をループして学生クラス オブジェクトにアクセスする方法は?

4

4 に答える 4

49

使用する

//$arr should be array as you mentioned as below
foreach($arr as $key=>$value){
  echo $value->sm_id;
}

また

//$arr should be array as you mentioned as below
foreach($arr as $value){
  echo $value->sm_id;
}
于 2012-12-04T16:53:47.347 に答える
7

配列とオブジェクトのループはかなり一般的なタスクであり、その方法を学びたいと思うのは良いことです。一般的に言えば、各メンバーを循環するforeachループを実行し、それに新しい一時的な名前を割り当て、その名前を介してその特定のメンバーを処理できるようにします。

foreach ($arr as $item) {
    echo $item->sm_id;
}

この例では、 の各値が の$arr順にアクセスされ$itemます。したがって、その値から直接値を出力できます。必要に応じて、インデックスを含めることもできます。

foreach ($arr as $index => $item) {
    echo "Item at index {$index} has sm_id value {$item->sm_id}";
}
于 2012-12-04T16:55:55.990 に答える
2

sm_idプロパティとプロパティがパブリックであると仮定すると、配列でc_ida を使用してアクセスできます。foreach

$array = array(/* objects in an array here */);
foreach ($array as $obj) {
    echo $obj->sm_id . '<br />' . $obj->c_id . '<br />';
}
于 2012-12-04T16:54:04.520 に答える