如果我执行以下操作:
foreach ($extrasServices as $extras)
{
var_dump($extras);
}
我明白了:
object(stdClass)#15 (3) {
["id"]=>
string(1) "1"
["optionname"]=>
string(16) "Disk Space"
["optiontype"]=>
string(1) "4"
}
object(stdClass)#18 (3) {
["id"]=>
string(1) "3"
["optionname"]=>
string(22) "Database (MySQL)"
["optiontype"]=>
string(1) "4"
}
object(stdClass)#19 (3) {
["id"]=>
string(1) "4"
["optionname"]=>
string(14) "Extra Domain"
["optiontype"]=>
string(1) "4"
}
在每个对象(stdClass)附加组件上,我需要添加一个额外的关联键,在该关联键中我们应该能够存储另一个数组。
我们怎样才能完成这样的事情?
非常感谢
答案 0 :(得分:3)
你应该将你正在迭代的对象数组视为对象 - 并使用你拥有的任何setter方法。 (或者只是设置属性。)
因此:
foreach ($extrasServices as &$extras) {
// If you've a custom setter.
$extras->setterMethod('key', 'new value');
// If you don't.
$extras->key = 'new value';
}
但是,您还需要确保通过引用访问对象(否则它们不会在foreach迭代器之外更改)。因此,上面例子中foreach语句中的& $ extras。
答案 1 :(得分:1)
foreach ($extrasServices as $extras)
{
$extras->new_key = array("key1" => "value1", "key2" => "value2");
var_dump($extras);
}