Как я могу добавить объект в массив с конкретным объектом в PHP? - PullRequest
0 голосов
/ 08 октября 2019

Это мой массив $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 объект bar со значением 1234:

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

Но это не добавлено.

Ответы [ 2 ]

2 голосов
/ 08 октября 2019

рабочий раствор:

  foreach($table as &$arr){
      if($arr->getUuid() == "0b4d53cba2"){
        $arr->{"bar"} = '1234';
      }
    }
0 голосов
/ 08 октября 2019

Это не добавлено, потому что ваш оператор if неверен

if (isset($table->uuid == "0b4d53cba2"))

Если uuid равен 0b4d53cba2, тогда он будет делать isset(true) (а если нет, то будет isset(false)).

Сначала необходимо проверить, установлена ​​ли uuid, а затем проверить значение:

if (isset($table->uuid) && $table->uuid == "0b4d53cba2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...