我需要转换此数组
Array (
[0] => stdClass Object
( [title] => primo )
[1] => stdClass Object
( [title] => secondo ))
到
Array (
[primo] => primo
[secondo] => secondo )
尝试了不同的选项,包括类型转换,仍未找到正确的解决方案
答案 0 :(得分:10)
$arr = json_decode(json_encode($yourObject), TRUE);
json_decode()的第二个参数设置为TRUE。
功能定义:
混合json_decode(字符串$ json [,bool $ assoc = false [,int $ depth> = 512 [,int $ options = 0]]])
这会将您的对象转换为关联数组。
答案 1 :(得分:1)
请检查此代码,我还没有调试过它......
s.toLowerCase()
答案 2 :(得分:1)
$final_array = array();
foreach ($items as $item)
{
$final_array = array_merge($final_array, json_decode(json_encode($item), true);
}
其中$items
是数组的名称。
应该遍历您的对象数组,将该对象转换为关联数组,并将其合并到$final_array
答案 3 :(得分:0)
只需使用array_walk
,如
$result = array();
array_walk($arr,function($v)use(&$result){
$result[$v->title] = $v->title;
});
print_r($result);
答案 4 :(得分:0)
最后我这样做了:
$options = array('' => '<select>');
$results = $query->execute()->fetchAll();
foreach($results as $id => $node) {
$value = $node->title;
$options[$value] = $value;
}
感谢您的所有答案
答案 5 :(得分:-2)
要盲目回答线程的标题,您可以通过简单地将其转换为关联数组来实现对象转换:
$array = (array) $object;
但是,在所讨论的示例中,基本操作可以帮助生成所需的数据结构,而无需使用任何内置函数:
$array = [];
foreach ($arrayOfObjects as $object) {
$title = $object->title ?? null;
if (!is_null($title)) {
$array[$title] = $title;
}
}