1

特定のテーブルに対してクエリを実行し、次の結果を得ています。

        $results = array(3) {
          [0]=>
          array(2) {
            ["category"]=>
            string(1) "1"
            ["manufacturer"]=>
            string(1) "2"
          }
          [1]=>
          array(2) {
            ["category"]=>
            string(1) "1"
            ["manufacturer"]=>
            string(1) "9"
          }
          [2]=>
          array(2) {
            ["category"]=>
            string(1) "1"
            ["manufacturer"]=>
            string(2) "10"
          }
        }

私は次のような多くのソリューションを試しました:

        $temp = array();
        foreach ($results as $result) {
            foreach ($result as $key => $value) {               
                 $data = array_merge($temp[$key], $value);
            }
        }

    foreach ($results as $result) {
                foreach ($result as $key => $value) {
                    array_push($temp[$result], $value);
                }
            }

カテゴリの値を配列のインデックスとして、メーカーの値を関連付けられたカテゴリ (インデックス) の配列として使用したい。以下に示すように:

$array = array(1) {
[1]=> array(3) {
     2,9,10
     }
};
4

1 に答える 1

1

このコードのライブ デモ:

$temp = array();
foreach($results as $result){
    $temp[$result['category']][] = $result['manufacturer'];
}

出力は要求どおりです。

array(1) {
    [1]=>
    array(3) {
        [0]=>
        string(1) "2"
        [1]=>
        string(1) "9"
        [2]=>
        string(2) "10"
    }
}

注:すべての PHP 配列は連想配列であるため、配列内の 0、1、2 インデックスを取り除くためにできることはありません。

于 2013-06-07T13:21:10.777 に答える