将stdClass对象转换为php中的关联数组

时间:2015-12-23 04:36:33

标签: php arrays stdclass

我需要转换此数组

Array ( 
[0] => stdClass Object 
     ( [title] => primo ) 
[1] => stdClass Object 
     ( [title] => secondo )) 

Array ( 
[primo] => primo
[secondo] => secondo ) 

尝试了不同的选项,包括类型转换,仍未找到正确的解决方案

6 个答案:

答案 0 :(得分:10)

使用json_encode()json_decode()

$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;
    }
}