我有这样的输出:
stdClass Object
(
[GetMatchdataByLeagueDateTimeResult] => stdClass Object
(
[Matchdata] => Array
(
[0] => stdClass Object
(
[teamId] => 40
在foreach循环中
foreach ($allMatches as $match):
我现在想要处理如下数据:
if ($match->idTeam1 == $teamId || $match->idTeam2 == $teamId):
但是我收到了这个错误:
尝试获取非对象的属性
原因是,Matchdata数组包含大约60多个条目,我想过滤掉[idTeam1]
或[idTeam2]
==给定ID的位置。
结果我只能得到5到7个条目。
使用stdClass对象时,最好的方法是什么?
请帮忙!
谢谢!
答案 0 :(得分:0)
假设$response
是您发布的结构:
$teamId = 99; // target teamId
foreach($response->GetMatchdataByLeagueDateTimeResult->MatchData as $match)
{
if ($match->idTeam1 == $teamId || $match->idTeam2 == $teamId)
{
// this `$match` has the target $teamId - do something
}
}
答案 1 :(得分:0)
现在可行:if($ match-> idTeam1 == $ teamId || $ match-> idTeam2 == $ teamId)...
非常感谢!!
答案 2 :(得分:0)
您的外部结构是一个对象,因此您可能正在迭代对象的可见属性(请参阅此页)。如果要遍历对象实例中的数组,则应将其传递给foreach循环,或让您的类实现Iterator接口并将其方法重定向到数组。
<?php
foreach ($object->allMatches as $match) {
/* Your iterate body here */
}