如何遍历数组以获取“ converted_amount”值?
stdClass Object
(
[rows] => Array
(
[0] => stdClass Object
(
[components] => Array
(
[0] => stdClass Object
(
[amount] => 5033298.132349431
[count] => 1337
[rate] => 3.1398800
[converted_amount] => 1603021.9952863243
)
[1] => stdClass Object
(
[amount] => 458673.0026585825
[count] => 325
[rate] => 0.45260800
[converted_amount] => 1013400.4157520011
)
我已经尝试过像这样的foreach,但是它不起作用。我认为在组件和convert_amount之间应该有一些东西-也许是另一个foreach?我不确定。
foreach ($getexvolume as $vol) {
echo $vol['rows'][0]['components']['converted_amount'];}
答案 0 :(得分:1)
如果有数组,则有一个对象。您必须将数据作为对象使用...
foreach ($getexvolume->rows as $row) {
foreach ($row->components as $component) {
echo $component->converted_amount;
}
}
答案 1 :(得分:0)
echo $vol->rows[0]->components[0]->converted_amount;
您正在混合数组和对象。您的输出是一个对象,因此您必须像访问对象一样访问它,否则,如果要将其视为数组,则必须将其转换为数组。现在,您可以使用上面的代码。
我认为适合您的问题的一个更好的解决方案是,您像这样在嵌套数组周围循环
foreach($vol->rows[0]->components as $data){
echo $data->converted_amount;
}
答案 2 :(得分:0)
尝试一下:
foreach ($getexvolume->rows[0]->components as $vol) {
echo $vol->converted_amount;
}
答案 3 :(得分:0)
您拥有的对象是数组和对象的混合体。
数组可以寻址为$array['value']
,但对象必须寻址为$object->value
。
echo $vol->rows[0]->components[0]->converted_amount;
但是,由于您有多个组件,因此需要一个嵌套循环:
foreach ($getexvolume as $vol)
{
foreach($vol->rows as $row)
{
foreach($row->component as $component)
{
echo $component->converted_amount;
}
}
}
(伪代码-未测试)。
理想情况下,变量将首先被规范化为多维数组或嵌套对象,因此您不必担心语法。