2011-01-22 38 views
5

我的阵列来这样如何将对象转换为数组以获取数据?

Array ([0] => stdClass Object ([ID] => 578 [post_author] => 1 [post_date] => 2011-01-18 07:23:17 [post_date_gmt] => 2011-01-18 07:23:17 [post_content] => Home WordPress is web software you can use to create a beautiful website or blog. We like to say that WordPress is both free and priceless at the same time. The core software is built by hundreds of community volunteers, and when you’re ready for more there are thousands of plugins and themes available to transform your site into almost anything you can imagine. Over 25 million people have chosen WordPress to power the place on the web they call “home” — we’d love you to join the family [post_title] => second post [post_excerpt] => [post_status] => publish [comment_status] => open 

当我写这样的

$myposts = get_posts($args); 
$arrDt = (array) $myposts; 
print_r($arrDt); 

但我的问题是我如何可以获取对象数组内的值。

请大家帮忙。 Thnx print_r($ arrDt);

回答

4

这只是正常的对象访问:

$obj = $arrDt[0]; 
echo $obj->ID; 
echo $obj->post_author; 
// etc. 

但是这取决于你想要做什么。我建议看看get_posts的例子。他们使用setup_postdata加载当前上下文中的发布内容。如果你想显示帖子,这可能是更干净的解决方案。

+0

喔,我的上帝谢谢费利克斯ü解决我的问题日Thnx日Thnx – rajeshrt 2011-01-22 11:45:58

3

这很简单:

您有一个阵列Array ([0] => stdClass Object ([ID]

该数组具有一个KEY,可以由“[0]”(但更多的键可能存在的)) 访问键被识别:

foreach ($arrDt as $value): //Look, whe are inside the first key. (currently is '0'). 
    echo $value->ID; 
    echo $value->post_author; 
endforeach; 

或者,如果你想对象转换为数组(如$值 'ID'],例如),你只需要这样:

function objectToArray($obj) 
    { 
     if (is_object($obj)): 
      $object = get_object_vars($obj); 
     endif; 

     return array_map('objectToArray', $object); // return the object, converted in array. 
    } 

$objArray = objectToArray($arrDt); 
print_r($objArray); 
0

您可以使用wp_get_recent_posts()而不是get_posts()wp_get_recent_posts()函数返回一个普通数组而不是对象数组,然后通过使用foreach循环可以访问数组的任何值。

1

在我的情况是:

foreach ($returnedObject as $row) { 
    $sub_array = ''; 
    $sub_array['ID'] = $row->data->ID; 
    $sub_array['user_login'] = $row->data->user_login; 
    $sub_array['display_name'] = $row->data->display_name; 
    $sub_array['user_email'] = $row->data->user_email; 
    $sub_array['user_registered'] = $row->data->user_registered; 
    $main_array[] = $sub_array; 
} 
相关问题