-3

2 つの SQL テーブルを結合した後、レコードを取得しようとしています。結果の配列は次のとおりです。

Array
(
[0] => Array
    (
        [optionId] => 150
        [price] => 2.00
        [name] => 1 Ice
        [languageId] => 4
    )

[1] => Array
    (
        [optionId] => 150
        [price] => 2.00
        [name] => Ek Burph
        [languageId] => 1
    )

[2] => Array
    (
        [optionId] => 151
        [price] => 5.00
        [name] => 2 Ice
        [languageId] => 4
    )

[3] => Array
    (
        [optionId] => 151
        [price] => 5.00
        [name] => Do Burph
        [languageId] => 1
    )

)

アプリで簡単に解析できるように、この配列を次の形式に変換したいと考えています。

Array
(
[0] => Array
    (
        [optionId] => 150
        [price] => 2.00
        [languages]=>array(
           [0]=>array(
              [name] => 1 Ice
              [languageId] => 4
           )
           [1]=>array(
              [name] => Ek Burph
              [languageId] => 1
           )
        )
    )

[1] => Array
    (
        [optionId] => 151
        [price] => 5.00
        [languages]=>array(
           [0]=>array(
              [name] => 2 Ice
              [languageId] => 4
           )
           [1]=>array(
              [name] => Do Burph
              [languageId] => 1
           )
        )
    )

)

すなわち。PHP で同じ optionId に属するアイテムをグループ化する必要がありますが、その方法がわかりません。助けてください。

4

1 に答える 1

1

自分でやりました:

    $array2 = array();
    $f = 0;
    if($array1){
        foreach($array1 as $option){
            $i = 0;
            foreach($array2 as $option2){
                if($option2['optionId'] == $option['optionId']){
                    $array2[$i]['language'][] = array('name'=>$option['name'],'languageId'=>$option['languageId']) ;
                    $f = 1;
                }
                $i++;
            }

            if(!$f){
                $array2[$i]['optionId'] = $option['optionId'];
                $array2[$i]['price'] = $option['price'];
                $array2[$i]['language'][] = array('name'=>$option['name'],'languageId'=>$option['languageId']);
            }

            $f = 0;
        }
    }
于 2012-05-31T12:15:49.497 に答える