Если вы приведете ассоциативный массив к объекту, он станет объектом stdClass
с соответствующими свойствами. Вот общий пример c:
$arr = ['one' => 'foo', 'two' => 'bar', 'three' => 'meh'];
$obj = (object) $arr;
var_dump($obj);
Это даст вам:
object(stdClass)#2 (3) {
["one"] · string(3) "foo"
["two"] · string(3) "bar"
["three"] · string(3) "meh"
}
В вашем случае вы могли бы сделать следующее, если надеетесь, что вам не придется назовите свои $queryObj
ключи / значения один за другим (что необходимо, если, например, список фильтров не фиксирован и, следовательно, не может быть жестко запрограммирован):
$filters = (object) $queryObj;
Очевидно, каждая пара ключ / значение в исходном массиве становится парой свойство / значение в объекте. Если есть определенные значения, которые вы хотите опустить, либо отключите их, либо используйте array_intersect_key()
et c. функции, чтобы использовать только желаемые клавиши. Предположим, ваш $queryObject
имеет несколько ключей, но вам нужны только те, которые указаны в вашем примере, вы можете сделать это:
$keymap = ['team', 'skill', 'division'];
$filters = (object) array_intersect_key(array_flip($keymap), $queryObject);