オブジェクトの配列があります。 print_r
出力は次のようになります。
Array
(
[0] => stdClass Object
(
[sm_id] => 1
[c_id] => 1
)
[1] => stdClass Object
(
[sm_id] => 1
[c_id] => 2
)
)
結果をループしてオブジェクト要素にアクセスする方法を見つけるのに本当に苦労しています。誰かが私にポインタを与えることができれば、私は非常に感謝するでしょう。
前もって感謝します
つかいます
//$arr should be array as you mentioned as below
foreach($arr as $key=>$value){
echo $value->sm_id;
}
OR
//$arr should be array as you mentioned as below
foreach($arr as $value){
echo $value->sm_id;
}
配列とオブジェクトのループ処理は非常に一般的なタスクであり、その方法を学びたいのは良いことです。一般的に、 foreach
loop を実行して、各メンバーを循環させ、新しい一時的な名前を割り当て、その名前で特定のメンバーを処理できます。
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}";
}
配列またはオブジェクト要素を持つ再帰トラバースオブジェクトまたは配列:
function traverse(&$objOrArray)
{
foreach ($objOrArray as $key => &$value)
{
if (is_array($value) || is_object($value))
{
traverse($value);
}
else
{
// DO SOMETHING
}
}
}
sm_id
およびc_id
プロパティはパブリックです。配列でforeach
を使用してアクセスできます。
$array = array(/* objects in an array here */);
foreach ($array as $obj) {
echo $obj->sm_id . '<br />' . $obj->c_id . '<br />';
}