2011-08-11 68 views
1

這裏是我的代碼與關鍵PHP array_push =>價值

foreach ($query1 as $post) 
{ 
    foreach ($query2 as $data) 
    { 
     if ($post->post_id == $data->post_id) 
     { 
      // add all actions from a post to its array 
      if (!isset($post->post_meta)) 
      { 
       $post->post_meta = array(strtolower($data->post_meta_key) => $data->post_meta_value); 
      } 
      else 
      { 
       array_push($post->post_meta[strtolower($data->post_meta_key)] = $data->post_meta_value); 
      } 
     } 
    } 
} 

林不知道如何解決的代碼。我沒有得到價值,只有關鍵和一些錯誤。

array_push()預計,至少2個參數,1給出

應該打印出這樣的事情

[0] => stdClass Object 
     (
      [post_id] => 218 
      [post_meta] => Array 
       (
        [flagged] => 0 
        [deleted] => 1 
       ) 

     ) 
+0

什麼返回$ data-> post_meta_value? –

+0

http://php.net/manual/en/function.array-push.php PHP有一個很好的文檔,在遇到問題時使用它。 –

+0

不清楚代碼的哪部分內容。你測試是否設置了'$ post-> post_meta',但你確定設置了'$ post-> post_meta [strtolower($ data-> post_meta_key)]'? –

回答

1

你的意思呢?

$post->post_meta[strtolower($data->post_meta_key)] = $data->post_meta_value; 
+0

這將起作用。但比我得到en錯誤,需要第二個參數... – cnotethegr8

+0

@cnot你能澄清一個確切的錯誤消息,請嗎? – deceze

+0

array_push()期望至少有2個參數,1給出 – cnotethegr8

0

我想,你需要這樣的:

$post->post_meta[strtolower($data->post_meta_key)] = $data->post_meta_value;