2014-12-13 211 views
0

我想填充$list而不是那個示例數據,爲每個ID都有自定義字段值的數組。像這樣:從數組創建多維數組

foreach($idArr as $ID) 
    array('.'get_post_meta($ID, 'name', true)'.'), 
    array('.'get_post_meta($ID, 'email', true)'.') 
    //and so on ... 

} 

$idArr包含交IDS

print_r($idArr); 
Array ([0] => 242 [1] => 241) 

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

回答

0

如果我解釋你的問題正確,您可以使用get_post_custom();

$list = array(); 

foreach ($idArr as $ID) { 
    $list[] = get_post_custom($ID); 
} 

這樣你會得到結構

$list = array(
    0 => array(
     'key1' => array([0] => 'value'), 
     'key2' => array([0] => 'value2'), 
    ) 
); 

的問題與此是每個自定義字段可以有多個值,所以你得到一個數組回來,而不是一個字符串。這相當於get_post_meta($post_id, 'key', false);。調整您的代碼以使用這種格式。

或者,如果你正在尋找特定的字段,你可以嘗試:

$list = array(); 

foreach ($idArr as $ID) { 
    $fields = get_post_custom($ID); 
    $values = array(); 

    // Select only the values you need and add them to the array. REPEAT as needed. 
    if (! empty($fields['email'][0]) { 
     $values[] = $fields['email'][0]; 
    } 

    $list[] = $values;   
} 

以上的方法解決了這個問題whcih意味着每個字段是一個數組,而不是字符串我的第一個例子。

我可能想給每個數組值一個關鍵。例如。 $list[]…變成$list[ $ID ]…

+0

我需要將這些保存到csv文件。 – Ciprian 2014-12-13 21:21:11

+0

PHP有內置的功能。 – 2014-12-13 21:24:54

+0

是啊...但這是我需要寫入CSV文件的信息。 – Ciprian 2014-12-13 21:30:16