PHP 通过键值创建不同的数组集

PHP make different set of array by key value

这是我得到的数组,请帮助我获得具有相同键值的输出,以便为每个相同的类别制作不同的数组。我在下面添加所需的输出

Array
(
[2] => Array
    (
        [ans_type] => single
        [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
        [opt1] => Analog video konektörü
        [opt2] => Sadece ses konektörü
        [opt3] => (MNC)
        [opt4] => Analog ses konektörü
        [opt5] => Sadece video konektörü
        [ans] => C
        [cat] => Genel
        [title] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
        [quiz_name] => history
    )

[3] => Array
    (
        [ans_type] => single
        [ques] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
        [opt1] =>    ST
        [opt2] =>    MT RJ
        [opt3] =>  (BNC)
        [opt4] =>    LC
        [opt5] =>    F-connector 
        [ans] => E
        [points] => 2
        [cat] => Genel
        [title] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
        [quiz_name] => geography
    )

   )

这是所需的输出

            Array
    (
        [0] => Array
            (
                [0] => Array
                (
                [ans_type] => single
                [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                [opt1] => Analog video konektörü
                [opt2] => Sadece ses konektörü
                [opt3] => (MNC)
                [opt4] => Analog ses konektörü
                [opt5] => Sadece video konektörü
                [ans] => C
                [cat] => Genel
                [title] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                [quiz_name] => history
                )

                [1] => Array
                    (
                        [ans_type] => single
                        [ques] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
                        [opt1] =>    ST
                        [opt2] =>    MT RJ
                        [opt3] =>  (BNC)
                        [opt4] =>    LC
                        [opt5] =>    F-connector 
                        [ans] => E
                        [points] => 2
                        [cat] => Genel
                        [title] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
                        [quiz_name] => history
                    )
            )
            [1] => Array
            (
                [0] => Array
            (
                [ans_type] => single
                [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                [opt1] => Analog video konektörü
                [opt2] => Sadece ses konektörü
                [opt3] => (MNC)
                [opt4] => Analog ses konektörü
                [opt5] => Sadece video konektörü
                [ans] => C
                [cat] => Genel
                [title] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                [quiz_name] => geography
            )
            )    



    )

如果你可以将结果数组的索引作为类别名称,事情就简单了。
$first 成为您的第一个数组

$first = Array
(
[2] => Array
(
    [ans_type] => single
    [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
    [opt1] => Analog video konektörü
     .....
     .....

然后在 $first 数组

上执行 forach 循环
$result = array();
foreach($first as $row){
    $index = $row['quiz_name'];
    $result[$index][] = $row;
}

var_dump($result);

输出会像,[​​=15=]

  Array
  (
    ['history'] => Array
        (
            [0] => Array
                  (
                    [ans_type] => single
                    [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                    [opt1] => Analog video konektörü
                    [opt2] => Sadece ses konektörü
                    [opt3] => (MNC)
                    [opt4] => Analog ses konektörü
                    [opt5] => Sadece video konektörü
                    [ans] => C
                    [cat] => Genel
                    [title] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                    [quiz_name] => history
                  )

            [1] => Array
                (
                    [ans_type] => single
                    [ques] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
                    [opt1] =>    ST
                    [opt2] =>    MT RJ
                    [opt3] =>  (BNC)
                    [opt4] =>    LC
                    [opt5] =>    F-connector 
                    [ans] => E
                    [points] => 2
                    [cat] => Genel
                    [title] => Aşağıdaki konektör tiplerinden hangileri coaxial kablo ile kullanılır
                    [quiz_name] => history
                )
        )
    ['geography'] => Array
        (
            [0] => Array
             (
                    [ans_type] => single
                    [ques] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                    [opt1] => Analog video konektörü
                    [opt2] => Sadece ses konektörü
                    [opt3] => (MNC)
                    [opt4] => Analog ses konektörü
                    [opt5] => Sadece video konektörü
                    [ans] => C
                    [cat] => Genel
                    [title] => Aşağıdakilerden hangisi Displayport'un özelliklerindendir
                    [quiz_name] => geography
              )
        )    
)