数组推送到对象数组

Array Push to Array of Objects

我有一个这种格式的数组;

// 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。

假设$this->viewableFields是你的更宽数组,你可以使用array_walk()原位修改数组。

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