如何动态地向对象的数组添加值?

时间:2012-03-20 11:23:36

标签: php

我看不到树木,请指出我正确的方向。

我有一个mysql查询并将行检索为对象。这很好用。 现在,我想用数据库中的值填充对象的数组。 这个对象($ myobject)有几个数组(即$ myobject-> field_1)。这些数组包含各种语言中某个字段的(多个)值,因此它可能是......比如$ myobject-> field_1 ['en'] [0] ='value'。这是我试图做的事情:

$query = 'SELECT t.id, t.lang, t.val FROM table t';
$result = db_query($query); // custom db layer function
foreach ($result AS $row) {
    $fieldname = 'field_'.$row->id;
    $myobject->$fieldname[$row->lang][] = $row->val;
}

最后一行不起作用。由于我不知道,已经为一种语言存储了多少个值,我只想在数组的末尾添加([])一个值。

我错过了哪个巧妙的技巧?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

$query = 'SELECT t.id, t.lang, t.val FROM table t';

$result = db_query($query); // custom db layer function

foreach ($result AS $row) {
    $fieldname = 'field_'.$row->id;
    $myobject->{$fieldname}[$row->lang][] = $row->val;
}

注意最后一行$ fieldname周围的大括号