数组中对象的PHP访问属性

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

我有一个php变量,我从a_POST获得。var_dump显示了这一点:

array(9) { [0]=> array(2) { ["age"]=> string(2) "62"
["amount"]=> string(5) "10878" } [1]=> array(2) { ["age"]=> string(2) "63"
["amount"]=> string(5) "10878" } [2]=> array(2) { ["age"]=> string(2) "64"
["amount"]=> string(5) "10878" } [3]=> array(2) { ["age"]=> string(2) "65"
["amount"]=> string(5) "10878" } [4]=> array(2) { ["age"]=> string(2) "66"
["amount"]=> string(5) "10878" } [5]=> array(2) { ["age"]=> string(2) "67"
["amount"]=> string(5) "28416" } [6]=> array(2) { ["age"]=> string(2) "68" 
["amount"]=> string(5) "28416" } [7]=> array(2) { ["age"]=> string(2) "69" 
["amount"]=> string(5) "28416" } [8]=> array(2) { ["age"]=> string(2) "70" 
["amount"]=> string(5) "28416" } }

我遍历数组,但无法获取要打印的属性:

for ($i=0; $i<count($incomeSched); $i++) {
    $age = $incomeSched[$i]->age;
    $amt = $incomeSched[$i]->amount;
    echo "age=$age, amount=$amt<br>";
}

年龄和金额为空白:

age=, amount=
提问于
用户回答回答于

关联数组和对象之间有区别。

$incomeSched[$i]->age;

是访问对象属性的方法。对于你想要的关联数组

$incomeSched[$i]["age"]

如果需要,可以将数组强制转换为对象:

$obj = (object)$incomeSched;
用户回答回答于

据我所知->age是对象语法。需要数组语法,这将是['age']

for ($i=0; $i<count($incomeSched); $i++) {
    $age = $incomeSched[$i]['age'];
    $amt = $incomeSched[$i]['amount'];
    echo "age=$age, amount=$amt<br>";
}

扫码关注云+社区

领取腾讯云代金券