2009-09-09 46 views
0

这里是我的数组:移动数组项周围

[2555] => Array 
     (
      [0] => stdClass Object 
       (
        [meta_id] => 1246 
        [post_id] => 2555 
        [meta_key] => event_date 
        [meta_value] => Sept 24th - 29th 
       ) 

      [1] => stdClass Object 
       (
        [meta_id] => 1245 
        [post_id] => 2555 
        [meta_key] => _edit_last 
        [meta_value] => 1 
       ) 

      [2] => stdClass Object 
       (
        [meta_id] => 1244 
        [post_id] => 2555 
        [meta_key] => _edit_lock 
        [meta_value] => 1252519100 
       ) 

      [3] => stdClass Object 
       (
        [meta_id] => 1251 
        [post_id] => 2555 
        [meta_key] => articleimg 
        [meta_value] => /image1.jpg 
       ) 

     ) 

    [2038] => Array 
     (
      [0] => stdClass Object 
       (
        [meta_id] => 462 
        [post_id] => 2038 
        [meta_key] => articleimg 
        [meta_value] => /image2.jpg 
       ) 

      [1] => stdClass Object 
       (
        [meta_id] => 463 
        [post_id] => 2038 
        [meta_key] => _edit_lock 
        [meta_value] => 1251846014 
       ) 

      [2] => stdClass Object 
       (
        [meta_id] => 464 
        [post_id] => 2038 
        [meta_key] => _edit_last 
        [meta_value] => 1 
       ) 

      [3] => stdClass Object 
       (
        [meta_id] => 467 
        [post_id] => 2038 
        [meta_key] => event_date 
        [meta_value] => Sept 15 
       ) 

     ) 

我试图进入一个数组,看起来像这样:

[2555] (
    [event_date] => Sept 24th - 29th 
    [articleimg] => /image1.jpg 
) 

etc... 

我已经写了一些讨厌的foreach和for循环和我的头在游泳。我错过了一个简单的方法来做到这一点?

回答

2

尝试是这样的:

foreach ($array as $key => $objs) { 
    $tmp = array(); 
    foreach ($objs as $obj) { 
     if ($obj->meta_key[0] !== '_') { 
      $tmp[$obj->meta_key] = $obj->meta_value; 
     } 
    } 
    $array[$key] = $tmp; 
} 

这将对象的数组拼合到键/值对的数组与对象的meta_key值作为重点和对象的meta_value值作为如果meta_key值的值不是以_开头的值。

+1

令人惊叹。我向你鞠躬,阵容的主人。谢谢。 – jmccartie 2009-09-09 18:06:38