如何在PHP中将对象添加到具有特定对象的数组中?

如何在PHP中将对象添加到具有特定对象的数组中?,php,arrays,object,Php,Arrays,Object,这是我的数组$table: array:2 [▼ 0 => Documents {#1523 ▼ -id: 55 -uuid: "0b4d53cba2" -name: "neu" -timestamp: DateTime @1570445917 {#1517 ▶} -pages: Pages {#1019 ▶} -products: PersistentCollection {#1512 ▶} -projects: Persist

这是我的数组
$table

array:2 [▼
  0 => Documents {#1523 ▼
    -id: 55
    -uuid: "0b4d53cba2"
    -name: "neu"
    -timestamp: DateTime @1570445917 {#1517 ▶}
    -pages: Pages {#1019 ▶}
    -products: PersistentCollection {#1512 ▶}
    -projects: PersistentCollection {#1509 ▶}
    -members: PersistentCollection {#1506 ▶}
    -documents: PersistentCollection {#1526 ▶}
  }
  1 => Documents {#1521 ▼
    -id: 56
    -uuid: "d87da82cde"
    -name: "zwei"
    -timestamp: DateTime @1570453219 {#1535 ▶}
    -pages: Pages {#1019 ▶}
    -products: PersistentCollection {#1532 ▶}
    -projects: PersistentCollection {#1519 ▶}
    -members: PersistentCollection {#1522 ▶}
    -documents: PersistentCollection {#1488 ▶}
  }
]
我尝试使用对象
uuid
0b4d53cba2
将值为
1234
的对象
bar
添加到数组中:

  if (isset($table->uuid == "0b4d53cba2")){
      $table->{"bar"} = '1234';
    }

但是它没有被添加。

它没有被添加,因为您的if语句不正确

if (isset($table->uuid == "0b4d53cba2"))
如果
uuid
0b4d53cba2
,则它将执行
isset(true)
(如果不是,则执行
isset(false)

您必须首先检查是否设置了
uuid
,然后检查值:

if (isset($table->uuid) && $table->uuid == "0b4d53cba2")
工作解决方案:

  foreach($table as &$arr){
      if($arr->getUuid() == "0b4d53cba2"){
        $arr->{"bar"} = '1234';
      }
    }

我测试了你的方法。它没有被添加。我不需要foreach?你当然需要foreach。我刚刚更正了您的if语句名为
文档
的类的定义是什么,因为它可能有访问数据的方法(除非定义为
公共
)。听起来好像您需要执行
if($table->getUuid()==“0b4d53cba2”){
,然后在设置值时(可能)
$table->setBar(“1234”);