$res = array:3 [▼
0 => array:18 [▼
"id" => 1
"smval" => "xys"
]
1 => array:18 [▼
"id" => 3
"smval" => "asss"
]
2 => array:18 [▼
"id" => 4
"smval" => "deg"
]
]
Ожидайте результата:
{first_id: 1, second_i d: 3, third_id: 4}
Я хочу преобразовать этот массив в объект. Поэтому я могу позвонить в ajax
{first_id: 1, second_i d: 3, third_id: 4}
Используйте json_encode
для преобразования Array в Json.
$res = [ 0 => [ "id" => 1, "smval" => "xys" ],
1 => [ "id" => 3, "smval" => "asss" ],
2 => [ "id" => 4 , "smval" => "deg" ]
];
$json = json_encode($res);
print_r($json);
Вы можете использовать динамические свойства для достижения этого:
$ids = new \stdClass(); //Laravel way due to namespacing
//$ids = new stdClass(); //create a generic empty object
$count = 1;
foreach ($res as $key=>$val){
$ids->{"id".($count++)} = $val["id"]; //assign the property to the object dynamically
}
echo(json_encode($ids));
Если вам нужен определенный набор имен, вы можете использовать другой массив для имен:
$ids = new \stdClass(); //Laravel way due to namespacing
//$ids = new stdClass(); //create a generic empty object
$names = ["name1", "name2", "name3"];
$count = 0;
foreach ($res as $key=>$val){
$ids->{$names[$count++]} = $val["id"]; //assign the property to the object dynamically based on the names array
}
echo(json_encode($ids));
$ids = new \stdClass();