2016-12-13 5 views
0

すべての情報で配列全体を返す方法は?私は配列のユーザーに関する情報を返そうとしています。私はこのパラメタで3人のユーザーを持っていますが、私が戻ったときに私は最初のユーザーしか表示されません。どうしたの?たぶん、$ userによってforEachのようなものを値として返す必要がありますか?forEachですべての配列をPHPで返すには?

function ___favorites($id_post) { 
     global $wpdb; 
     $users = $wpdb->get_blog_prefix() . 'users'; 
     $user_meta = $wpdb->get_blog_prefix() . 'usermeta'; 
     // делаем запрос 
     $favorites = $wpdb->get_results("SELECT ID FROM {$users} LEFT OUTER JOIN {$user_meta} ON {$user_meta}.user_id = {$users}.ID 
     WHERE {$user_meta}.meta_key = 'fav_id' AND {$user_meta}.meta_value LIKE '%{$id_post}%'", ARRAY_A); 
     return $favorites; 
    } 


function favorites_app($id_post) { 
    $users = ___favorites($id_post); 
    if (!empty($users)) { 
    foreach($users as $value) { 
     $user_data = get_userdata($value['ID']); 
     $user_id = get_user_by('login', $user_data->user_login); 
    } 
    return $users; 
    } else { 
    return null; 
    } 
} 
+0

あなたはforeach内で '$ user_id'を使用しません。これは正常ですか?それを配列に追加することができます。 foreach内で毎回 '$ user_id'が上書きされているので、 – AnthonyB

+0

の部分は問題ですか?お気に入りメソッドは、投稿に関連付けられたすべてのユーザーIDを返します。 favourites_appは、そのクエリの結果をそのまま渡します。 foreachループは、生成するデータで何もしないため、無意味です。新しい配列を作成して返したいのですか? – ADyson

+0

申し訳ありません私はこれに変更しています) –

答えて

0

ありがとうございました。私はちょうどそれに変更して、私は空のデータを返します。そして私はこれを書き直す)愚かな質問を申し訳ありません!

 function ___favorites($id_post) { 
     global $wpdb; 
     $users = $wpdb->get_blog_prefix() . 'users'; 
     $user_meta = $wpdb->get_blog_prefix() . 'usermeta'; 
     // делаем запрос 
     $favorites = $wpdb->get_results("SELECT ID FROM {$users} LEFT OUTER JOIN {$user_meta} ON {$user_meta}.user_id = {$users}.ID 
     WHERE {$user_meta}.meta_key = 'fav_id' AND {$user_meta}.meta_value LIKE '%{$id_post}%'", ARRAY_A); 
     return $favorites; 
    } 



function favorites_app($id_post) 
     { 
     if (! $users = ___favorites($id_post)) { 
     return null; 
     } 

     $userData = []; 

     foreach ($users as $user) { 
     $data = get_userdata($user['ID']); 
     $user_id = get_user_by('login', $user_data->user_login); 
     $userData[] = [ 
      'name' => $data->user_nicename, 
      'id' => $data -> id, 
      'avatar' => bp_core_fetch_avatar(array('item_id' => $user['ID'])), 
      ]; 
     } 

     return $userData; 
} 
関連する問題