2015-03-25 127 views
1

我尝试将多个数组合并成一个数组时遇到问题我也无法找到一个体面的解决方案,因为使用merge_array不起作用。我在我的foreach循环中创建了一个数组,但它始终以一个字符串的多个数组出现。我怎样才能转换这个。从一个字符串合并数组?

Array 
(
    [images] => /wp-content/uploads/2015/03/223-HfpWJ4h.jpg 
    [userid] => 15 
) 
Array 
(
    [images] => /wp-content/uploads/2015/03/074-XlqzqVn.jpg 
    [userid] => 1 
) 
Array 
(
    [images] => /wp-content/uploads/2014/09/cj-spiller.jpg 
    [userid] => 1 
) 
Array 
(
    [images] => /wp-content/uploads/2015/02/183-cZRn9rz.jpg 
    [userid] => 1 
) 
Array 
(
    [images] => /wp-content/uploads/2015/02/001-gSxGEWD5.jpg 
    [userid] => 1 
) 

对此?

Array 
(
    [0] => array(
     [images] => /wp-content/uploads/2015/03/223-HfpWJ4h.jpg 
     [userid] => 15 
    ) 
    [1] => array(
     [images] => /wp-content/uploads/2015/03/074-XlqzqVn.jpg 
     [userid] => 1 
    ) 
    [2]=> array(
     [images] => /wp-content/uploads/2014/09/cj-spiller.jpg 
     [userid] => 1 
    ) 
) 

这是我的代码

global $wpdb, $bp; 

$activity_table = bp_core_get_table_prefix() . 'bp_activity'; 
$activity_meta_table = bp_core_get_table_prefix() . 'bp_activity_meta'; 

// that have pictures associated with them 
$sql = "SELECT a.*, am.meta_value, am2.meta_value as privacy FROM $activity_table a 
        INNER JOIN $activity_meta_table am ON a.id = am.activity_id 
        LEFT JOIN (SELECT activity_id, meta_key, meta_value FROM $activity_meta_table 
        WHERE meta_key = 'activityprivacy') am2 ON a.id = am2.activity_id 
        AND (am.meta_key = 'buddyboss_pics_aid' OR am.meta_key = 'bboss_pics_aid') 
        ORDER BY a.date_recorded DESC"; 

$pics = $wpdb->get_results($sql,ARRAY_A); 

$i = 0; 

foreach($pics as $pic){ 

    $attachment_id = isset($pic['meta_value']) ? (int)$pic['meta_value'] : 0; 
    $tn = wp_get_attachment_image_src($attachment_id, 'buddyboss_pic_tn'); 

    $userid = $pic['user_id']; 

    if($tn[0] != ''){ 

     $profile_image = array('images' => $tn[0], 'userid' => $pic['user_id']); 

     print_r($profile_image); 

    } 
} 

回答

2

这似乎是:

$result = array(); 

//... 
foreach($pics as $pic){ 

    //... 

    $userid = $pic['user_id']; 

    if($tn[0] != ''){ 

     $profile_image = array('images' => $tn[0], 'userid' => $pic['user_id']); 

     $result[] = $profile_image; 

    } 
} 

不是吗?或者我误会了你的目的。

+0

不要忘记在输入'foreach($ pics as $ pic){}'之前初始化'$ result',也欢迎来到SO! – ariefbayu 2015-03-25 05:35:37

+0

@ariefbayu谢谢你提醒我。 – Clarence 2015-03-26 07:20:51