数组推送到对象数组

时间:2020-03-06 16:30:56

标签: php arrays object array-push

我有这种格式的数组;

// echo '<pre>' . var_export($this->viewableFields, true) . '</pre>';

array (
  0 => 
  (object) array(
     'formId' => '4',
     'componentId' => '-7',
     'viewable' => '1',
     'searchable' => '0',
     'editable' => '0'
  ),
  1 => 
  (object) array(
     'formId' => '4',
     'componentId' => '-4',
     'viewable' => '1',
     'searchable' => '1',
     'editable' => '0'
  )
)

我正在从mysql数据库中选择一些数据,我需要将其添加到数组中。我想添加group = Registered,所以输出看起来像这样;

// echo '<pre>' . var_export($this->viewableFields, true) . '</pre>';

array (
  0 => 
  (object) array(
     'formId' => '4',
     'componentId' => '-7',
     'viewable' => '1',
     'searchable' => '0',
     'editable' => '0',
     'group' => 'Registered'
  ),
  1 => 
  (object) array(
     'formId' => '4',
     'componentId' => '-4',
     'viewable' => '1',
     'searchable' => '1',
     'editable' => '0',
     'group' => 'Registered'
  )
)

我尝试了以下操作,但是它只是在数组的末尾(编号[2])创建了另一个项目。

$group = (object) array(
    'group' => 'Registered'
);

array_push($this->viewableFields, $group);

注意,我无法修改SQL。

1 个答案:

答案 0 :(得分:2)

假设$this->viewableFields是更广泛的数组,则可以使用array_walk()来就地修改数组。

array_walk($this->viewableFields, function(&$arr) {
    $arr->group = 'Registered';
});