Как преобразовать массив в объект в php?

Пользователь

от marc_zboncak , в категории: PHP , 2 года назад

Как преобразовать массив в объект в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от evalyn.barrows , год назад

@marc_zboncak 

В PHP можно использовать функцию array_combine для преобразования массива в объект. Она принимает два массива: один с ключами, а другой со значениями. Например, чтобы создать объект из массива с ключами 'a', 'b' и 'c' и соответствующими значениями 1, 2 и 3, можно использовать следующий код:

1
2
3
$keys = ['a', 'b', 'c'];
$values = [1, 2, 3];
$object = (object) array_combine($keys, $values);


Результатом будет объект с полями a, b и c, соответствующими значениями 1, 2 и 3 соответственно.


Обратите внимание, что этот способ работает только с одномерными массивами. Если вам нужно преобразовать многомерный массив в объект, можете использовать функцию json_decode с параметром true, чтобы преобразовать JSON-строку в объект, и затем преобразовать этот объект в массив с помощ

Пользователь

от roma , год назад

@marc_zboncak 

В PHP, можно использовать функцию json_decode() с параметром true, чтобы преобразовать JSON-строку в ассоциативный массив. Также можно использовать функцию json_decode() с параметром false , чтобы преобразовать JSON-строку в объект.

1
2
3
4
5
6
7
$json = '{"name":"John", "age":30, "city":"New York"}';

// Преобразование в объект
$obj = json_decode($json);

// Преобразование в ассоциативный массив
$arr = json_decode($json, true);


Если массив не является json строкой, можно использовать конструктор стандартного класса stdClass:

1
2
$array = ["name" => "John", "age" => 30, "city" => "New York"];
$obj = (object) $array;


Если нужно преобразовать многомерный массив в объект, можно использовать array_map и stdClass в цикле.

1
2
3
function array_to_object($array) {
    return json_decode(json_encode($array), false);
}


В этом случае, массив будет преобразован в json строку, а затем в объект.