Как переписать значения объектов используя массив php - PullRequest
2 голосов
/ 20 июня 2019

У меня есть следующий массив, содержащий один или несколько объектов :

array:1 [▼
  0 => ApiS7File {#484 ▼
    +id: 19
    +type: "file"
    +z: "e1a4f81f.f90428"
    +name: ""
    +filename: "example/example.txt"
  }
]

Если пользователь предоставляет мне массив опций

$options = ['filename' => 'hello', 'name' => 'thanks']

Я хочу, чтобы объект массива был перезаписан с использованием значений, предоставленных пользователем:

array:1 [▼
  0 => ApiS7File {#484 ▼
    +id: 19
    +type: "file"
    +z: "e1a4f81f.f90428"
    +name: "thanks"
    +filename: "hello"
  }
]

Как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 20 июня 2019

Это может решить вашу проблему.

//assuming $arr is your array

foreach($arr as $a){
   foreach($options as $key=>$value){
       $a->$key = $value;
   }
}
return $arr;
1 голос
/ 20 июня 2019

Вы можете использовать array_replace,

$result = array_replace($yourArray, $options);

Вот синтаксис для того же

$basket = array_replace($base, $replacements,// you can pass multiple arrays);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...