对象数组属性在加载数组时添加索引



>对象对我来说有点新。

我有一个对象属性,它是一个数组...$obj->something[]. 我有一个多维关联数组...$schedule[$year][$month][$day][$event].

当我将数组加载到对象属性中时,对象会添加一个索引。

$obj->something[] = $schedule;

因此,当我将数据从对象中提取出来时,我会得到额外的索引......

[0][$year][$month][$day][$event]  

我尝试了array_replace但这似乎没有任何作用。 如何避免获得额外的领先指数?

将数组直接分配给不带方括号的属性。

$obj->something = $schedule;

在赋值语句左侧末尾使用[]将分配的值追加到数组(如果数组尚不存在,则创建数组(。

如果您已将something属性初始化为空数组,但它应该保存您的调度数组,您希望$schedule替换空数组,但您这样做的方式$schedule放入该数组中。

你可以试试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); 
}
}

最新更新