我在数组中有一个对象,该对象本身在数组中-像这样:
Array (
[0] => Array
(
[year] => 2010
[0] => stdClass Object
(
[ticker] => AAA
[exchange] => LSE
[cur_value] => 100
)
[1] => stdClass Object
(
[ticker] => BBB
[exchange] => LSE
[cur_value] => 200
)
)
[1] => Array
(
[year] => 2015
[0] => stdClass Object
(
[ticker] => AAA
[exchange] => LSE
[cur_value] => 100
)
[1] => stdClass Object
(
[ticker] => BBB
[exchange] => LSE
[cur_value] => 200
)
)
)
我希望能够遍历第一级数组,然后使用其中包含的数据创建一个表。该表将使用“年”作为名称,而stdClass对象将是进入该表的数据。
我遇到的问题是['year']干扰了表格的第一行,而我似乎无法跳过它-例如通过添加一个计数器并跳过第一个foreach迭代或使用is_object。
我得到的错误(并且我理解为什么得到)是“您正在尝试获取非对象的属性”。
我看过其他SO问题,但我无法找到这个确切的问题,例如,这个问题-Notice: Trying to get property of non-object error
有人能帮我跳过那一年吗?我拥有的PHP代码如下:
foreach($portfolios as $portfolio){
echo $portfolio['year'];
echo '<table>';
echo '<tr>';
echo '<th>Ticker</th>';
echo '<th>Exchange</th>';
echo '<th>Value</th>';
echo '</tr>';
foreach($portfolio as $folio){
echo '<tr>';
echo '<td>'.$folio->ticker.'</td>';
echo '<td>'.$folio->exchange.'</td>';
echo '<td>'.$folio->cur_value.'</td>';
echo '</tr>';
}
echo '</table>';
}
答案 0 :(得分:0)
您可以使用array_splice()
删除数组的第一个元素,如下所示:
$splicedArray = array_splice($portfolio, 0, 1);
foreach(splicedArray as $folio) {
echo '<tr>';
echo '<td>'.$folio->ticker.'</td>';
echo '<td>'.$folio->exchange.'</td>';
echo '<td>'.$folio->cur_value.'</td>';
echo '</tr>';
}
您可以查看array_shift()
,也可以使用键并在循环中跳过该迭代。有很多解决这个问题的可能性。
或者非常简单地使用unset。