2009-09-09 43 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