Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysql查询结果转换为多维数组_Php_Mysql_Arrays_Multidimensional Array - Fatal编程技术网

PHP mysql查询结果转换为多维数组

PHP mysql查询结果转换为多维数组,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,上面制作的数组将生成一个具有多个值的数组。数组将如下所示 while ($selected_row = $stmt->fetch(PDO::FETCH_ASSOC)) { $basicinfo[] = array('schlid' => $selected_row['schlid'], 'name' => $selected_row['name'], 'class' => $selected_row['class']); } 但我可以通过下面的操作删除相同的值

上面制作的数组将生成一个具有多个值的数组。数组将如下所示

while ($selected_row = $stmt->fetch(PDO::FETCH_ASSOC)) {    
$basicinfo[] = array('schlid' => $selected_row['schlid'], 'name' => $selected_row['name'], 'class' => $selected_row['class']);
}
但我可以通过下面的操作删除相同的值

Array
(
    [0] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [1] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

    [2] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [3] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

    [4] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [5] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

    [6] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [7] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

    [8] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [9] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

    [10] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [11] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )

)
我会在下面看到这个

$input = array_map("unserialize", array_unique(array_map("serialize", $basicinfo)));
$new_data = array_values($input); 
现在,我所做的是创建一个多维数组,其中包含与此相同的查询结果

Array
(
    [0] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => Math 
        )

    [1] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [class] => English 
        )
)
从上面我得到的结果是

    while ($selected_row = $stmt - > fetch(PDO::FETCH_ASSOC)) {
         $tmp_key = $selected_row['schlid']; //adding a temp key
         $basicinfo[$tmp_key]['name'] = $selected_row['name'];
         $basicinfo[$tmp_key]['schlid'] = $selected_row['schlid'];
         $sudky = (isset($basicinfo[$tmp_key]['Class'])) ? count($basicinfo[$tmp_key]['Class']) : 0;
         $basicinfo[$tmp_key]['Class'][$sudky]['class'] = $selected_row['class'];
    }
我想要的是

Array
(
    [015-08-0011-000-01] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [Class] => Array
                (
                    [0] => Array
                        (
                            [class] => Math 
                        )

                    [1] => Array
                        (
                            [class] => English 
                        )

                    [2] => Array
                        (
                            [class] => Math 
                        )

                    [3] => Array
                        (
                            [class] => English 
                        )

                    [4] => Array
                        (
                            [class] => Math 
                        )

                    [5] => Array
                        (
                            [class] => English 
                        )

                    [6] => Array
                        (
                            [class] => Math 
                        )

                    [7] => Array
                        (
                            [class] => English 
                        )

                    [8] => Array
                        (
                            [class] => Math 
                        )

                    [9] => Array
                        (
                            [class] => English 
                        )

                    [10] => Array
                        (
                            [class] => Math 
                        )

                    [11] => Array
                        (
                            [class] => English 
                        )

                )

        )

)
删除多维数组中的重复元素。
上面的结果来自php中的
print_r()
,如果这是相关的

您可以使用
for
循环在分配学生类之前检查,或者在使用输出后处理包含重复类的数组


$basicinfo[$tmp\u key]['Class'][0]=array\u unique($basicinfo[$tmp\u key]['Class'][0])//值得一试。让我也试试不带
[0]
的itTry
Array
(
    [015-08-0011-000-01] => Array
        (
            [schlid] => 015-08-0011-000-01
            [name] => John
            [Class] => Array
                (
                    [0] => Array
                        (
                            [class] => Math 
                        )

                    [1] => Array
                        (
                            [class] => English 
                        )
                )

        )

)
$basicinfo[$tmp_key]['Class'][0] = array_unique($basicinfo[$tmp_key]['Class'][0]); //<-The array that you don't want duplicates in. i modify the formating