如何在PHP中创建此数组?

| 我有这个查询
select * from template_product where template_id = 8 group by class_id, product_id
哪个返回
 template_product_id  template_step_id     step_number    product_id    class_id      template
16                   11                     1            54            1              8
17                   11                     1            56            1              8
18                   11                     1            57            1              8
19                   11                     1            58            1              8
20                   11                     1            54            2              8
21                   11                     1            56            2              8
22                   11                     1            57            2              8
23                   11                     1            58            2              8
24                   11                     1            59            2              8
25                   11                     1            60            2              8
26                   11                     1            63            2              8
27                   11                     1            64            2              8
28                   11                     1            52            2              8
29                   11                     1            54            3              8
30                   11                     1            52            3              8
31                   12                     2            61            1              8
32                   12                     2            62            2              8
33                   12                     2            61            3              8
从这些数据,我如何创建这样的数组
Array
(
    [0] => Array
        (
            [step_number] => 1
            [first_class] => [54, 56, 57, 58]
            [second_class] => [54, 56, 57, 58, 59, 60, 63, 64, 52]
            [third_class] => [54, 52]
        )                      

    [1] => Array               
        (                      
              [step_number] => 2
              [first_class] => [61]
              [second_class] => [62]
              [third_class] => [61]
        )
)
基本上,每个步骤编号都是一个新数组,and3ѭ是1、2或334ѭ,
second_class
third_class based
,最后each7ѭ在每个数组中都位于一个数组中。 任何想法如何创建此数组     
已邀请:
这是一个解决方案:
<?php
$records = array(
    array(\'step_number\' => 1, \'class_id\' => 1, \'product_id\' => 54),
    array(\'step_number\' => 1, \'class_id\' => 1, \'product_id\' => 56),
    array(\'step_number\' => 1, \'class_id\' => 1, \'product_id\' => 57),
    array(\'step_number\' => 1, \'class_id\' => 1, \'product_id\' => 58),
    array(\'step_number\' => 1, \'class_id\' => 2, \'product_id\' => 54),
    array(\'step_number\' => 1, \'class_id\' => 2, \'product_id\' => 56),
    array(\'step_number\' => 1, \'class_id\' => 2, \'product_id\' => 57),
    array(\'step_number\' => 2, \'class_id\' => 2, \'product_id\' => 58),
    array(\'step_number\' => 2, \'class_id\' => 2, \'product_id\' => 59),
    array(\'step_number\' => 2, \'class_id\' => 2, \'product_id\' => 60),
    array(\'step_number\' => 2, \'class_id\' => 2, \'product_id\' => 63),
    array(\'step_number\' => 2, \'class_id\' => 2, \'product_id\' => 64),
);

$new_array = array();
foreach($records as $record => $row) {
    $class = \'\';
    switch ($row[\'class_id\']) {
        case \'1\':
            $class = \'first_class\';
            break;
        case \'2\':
            $class = \'second_class\';
            break;
        case \'3\':
            $class = \'third_class\';
            break;
    }
    $new_array[\'step_number\'][$row[\'step_number\']][$class][] = $row[\'product_id\'];
}

print_r($new_array);
?>
现在只需更新即可从数据库中提取。     
这样的事情应该工作:
$result = array();
$currentStepNumber = null;

foreach ($table as $item)
{
    $stepNumber = $item[\'step_number\'];

    if ($stepNumber != $currentStepNumber)
    {
        $result[] = array(
            \'step_number\' => $stepNumber,
            \'first_class\' => array(),
            \'second_class\' => array(),
            \'third_class\' => array()
        );

        $currentStepNumber = $stepNumber;
    }

    switch ($item[\'class_id\'])
    {
        case 1:
            $result[count($result) - 1][\'first_class\'][] = $item[\'product_id\'];
            break;

        case 2:
            $result[count($result) - 1][\'second_class\'][] = $item[\'product_id\'];
            break;

        case 3:
            $result[count($result) - 1][\'third_class\'][] = $item[\'product_id\'];
            break;

        default:

    }
}

var_dump($result);
其中“ 10”是您来自sql请求的数据。     

要回复问题请先登录注册