2017-01-27 5 views
1

私はデータベースにクエリを作成し、これを印刷します。ご覧のとおり、page_id => 2は1つの配列にすることができます。どのように配列を結合し、自分の配列をIDで作るのですか?

Array 
(
    [page_id] => 3 
    [name] => Add Me 
    [article_category] => Celebrities 
    [count_article_category] => 1 
    [average_ctr] => 5.555560111999512 
) 
Array 
(
    [page_id] => 2 
    [name] => I Too Had a Love Story 
    [article_category] => Celebrities 
    [count_article_category] => 7 
    [average_ctr] => 2.525434238570077 
) 
Array 
(
    [page_id] => 2 
    [name] => I Too Had a Love Story 
    [article_category] => Desi 
    [count_article_category] => 1 
    [average_ctr] => 2.892319917678833 
) 
Array 
(
    [page_id] => 2 
    [name] => I Too Had a Love Story 
    [article_category] => Lifestyle 
    [count_article_category] => 1 
    [average_ctr] => 2.3632400035858154 
) 
Array 
(
    [page_id] => 2 
    [name] => I Too Had a Love Story 
    [article_category] => Sports 
    [count_article_category] => 1 
    [average_ctr] => 2.150439977645874 
) 
Array 
(
    [page_id] => 1 
    [name] => Indian Celebrities 
    [article_category] => Celebrities 
    [count_article_category] => 2 
    [average_ctr] => 2.7356200218200684 
) 
Array 
(
    [page_id] => 1 
    [name] => Indian Celebrities 
    [article_category] => Hilarious 
    [count_article_category] => 1 
    [average_ctr] => 0.7684919834136963 
) 

このような配列が必要です。

[2] 
    (
     [Celebrities] => 7 
     [Lifestyle] => 1 
     [Desi] => 1 
    ) 

私はforeachループで実行される次のコードを試してみました。私の論理やコーディングが間違っていることを理解していますが、私は間違いを理解することができません。
助けてください。

if (isset($data['page_id'])) 
{ 
    if (array_key_exists($data['page_id'], $pages_data)) 
    { 
    echo "<pre>"; 
    var_dump($pages_data); 
    $pages_data[$data['page_id']] += array(
     $data['article_category'] => $data['count_article_category'], 
    ); 
    } else { 
    // $pages_data[$data['article_category']] = $data['average_ctr']; 
    // $pages_dat a[$data['page_id']] = $data['page_id']; 
    $pages_data[$data['page_id']] = array(
     $data['article_category'] => $data['count_article_category'], 
    ); 
    } 
    echo "<pre>"; 
    print_r($pages_data); 
} 
+0

を多分 'あなたの努力を収集し、あなたが試したし、何が間違っていた何整理するために、これまで – Hackerman

+0

良い仕事をarray_combine'と。あなたの努力は私たちがより簡単に手助けすることを可能にします。おそらく、コードが実行されたときの結果/出力の内容(問題を解決するために作成したコード)を含めることもできます。 –

答えて

0

さて、ここで私達は行く:

$pages_data = array(); 
foreach ($datas as $data) { 
    if (isset($data['page_id'])) { 
     // create new element for $pages_data[$data['page_id']] if it does not exists 
     if (!isset($pages_data[$data['page_id']])) { 
      $pages_data[$data['page_id']] = array(); 
     } 

     // if it exists - just add certain values: 
     $pages_data[$data['page_id']][$data['article_category']] = $data['count_article_category']; 
    } 
} 
関連する問題