我需要将这个数组转换
Array (
[0] => stdClass Object
( [title] => primo )
[1] => stdClass Object
( [title] => secondo ))
到
Array (
[primo] => primo
[secondo] => secondo )
尝试了不同的选项,包括类型转换,仍未找到正确的解决方案
我需要将这个数组转换
Array (
[0] => stdClass Object
( [title] => primo )
[1] => stdClass Object
( [title] => secondo ))
到
Array (
[primo] => primo
[secondo] => secondo )
尝试了不同的选项,包括类型转换,仍未找到正确的解决方案
使用json_encode()和 json_decode()
$arr = json_decode(json_encode($yourObject), TRUE);
json_decode()的第二个参数设置为TRUE
。
函数定义:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth > = 512 [, int $options = 0 ]]] )
这将把您的对象转换为关联数组。
最终我做到了这个:
$options = array('' => '<select>');
$results = $query->execute()->fetchAll();
foreach($results as $id => $node) {
$value = $node->title;
$options[$value] = $value;
}
$array = array_values($array);
$new_array = array();
foreach($array as $row){
$new_array[$row['title']] = $row['title'];
}
$final_array = array();
foreach ($items as $item)
{
$final_array = array_merge($final_array, json_decode(json_encode($item), true);
}
其中$items
是您的数组名称。
应该遍历对象数组,将该对象转换为关联数组,并将其合并到$final_array
中。
只需像这样使用array_walk
$result = array();
array_walk($arr,function($v)use(&$result){
$result[$v->title] = $v->title;
});
print_r($result);
回答这个主题的问题,你可以通过简单地将其转换为数组来实现对象转换为关联数组:
$array = (array) $object;
$array = [];
foreach ($arrayOfObjects as $object) {
$title = $object->title ?? null;
if (!is_null($title)) {
$array[$title] = $title;
}
}