对象对我来说有点新。
我有一个对象属性,它是一个数组... $obj->something[]
。
我有一个多维关联数组... $schedule[$year][$month][$day][$event]
。
当我将数组加载到对象属性中时,对象会添加一个索引。
$obj->something[] = $schedule;
所以当我从对象中提取数据时,我得到了额外的索引...
[0][$year][$month][$day][$event]
我尝试了array_replace
,但似乎没有任何作用。如何避免获得额外的领先指数?
答案 0 :(得分:0)
将数组直接分配给属性而不使用方括号。
$obj->something = $schedule;
在赋值语句左侧的末尾使用[]
,将分配的值附加到数组(如果尚不存在,则创建该数组)。
如果您已将something
属性初始化为一个空数组,但是应该保留您的Schedule数组,则您希望$schedule
替换该空数组,但是您将其放置{{ 1}}改为插入该数组。
答案 1 :(得分:0)
您可以尝试array_merge。 http://php.net/manual/en/function.array-merge.php
class Foo {
private $something = [];
function mergeEm(array $somethingElse) {
$this->something = array_merge($this->something, $somethingElse);
}
}