2016-06-15 7 views
-2

で複数回検出された配列内の配列にする方法:あなたが最初の3セットが表示された場合これは以下のように私のアレイが見えるものである共通IDは、PHP

(
    [0] => stdClass Object 
     (
      [question_id] => 2 
      [question] => Which career is help to achive mca? 
      [answer_id] => 1 
      [answer] => nmit bangalore is the best college ever for mca 
     ) 

    [1] => stdClass Object 
     (
      [question_id] => 2 
      [question] => Which career is help to achive mca? 
      [answer_id] => 6 
      [answer] => rnsit is the best college 
     ) 

    [2] => stdClass Object 
     (
      [question_id] => 2 
      [question] => Which career is help to achive mca? 
      [answer_id] => 7 
      [answer] => city college is best for mca 
     ) 

は、question_idquestionが同じであるanswer_idをしながら、 answerは3つのセットで異なります。私はquestion_idquestionのない配列の中に3つの答えをすべて必要とします。私はこれをPHPで実現しようとしています。

答えて

1

あなたはインクリメンタルこのように、質問と回答の連想からなる連想配列を構築するために、単純なforeachループを使用することができます。

// Declare $result_arr array to store the result array 
$result_arr = array(); 

// Suppose $arr is your original array 
foreach($arr as $obj){ 
    $result_arr[$obj->question_id]['question_id'] = $obj->question_id; 
    $result_arr[$obj->question_id]['question'] = $obj->question; 
    $result_arr[$obj->question_id]['answers'][] = array('answer_id' => $obj->answer_id, 'answer' => $obj->answer); 
} 
$result_arr = array_values($result_arr); 
echo "<pre>"; print_r($result_arr); 

はここlive demoです。

+0

素晴らしいです...ありがとう@rajdeep Paul –

+0

@ pavankumar.pあなたは大歓迎です! :-)あなたの問題を解決した場合、答えを受け入れることを検討してください。 [スタックオーバーフローに関する回答を受け取る方法](http://meta.stackexchange.com/a/5235) –

関連する問題