【问题标题】:Creating a multidimensional array using an array and loop through mysql table使用数组创建多维数组并循环遍历mysql表
【发布时间】:2015-06-29 14:44:23
【问题描述】:

我有一个具有以下结构的表。目前共有 9 名学生就读于 3 个班级(01、16 和 52 班),每个班级招收 3 名学生。

studentcode | classcode  
-------------------------
D3kcIvyp    | 01  
DdIhBc      | 01  
2vx0KV      | 01  
9p1PxWCV    | 52  
RnmfH1WE    | 52  
MSTBEv      | 52  
Yp4J3o      | 16  
fWQ5Oo      | 16  
6sxw3u      | 16  

这是包含所有当前类的数组:

$classes_array = array ( [0] => 01 [1] => 52 [2] => 16 )

使用这个数组,我想通过 mysql 表创建一个多维数组,其中 classcodes 用作第一级键:

Array
(
    [01] => Array
        (
            [0] => D3kcIvyp
            [1] => DdIhBc
            [2] => 2vx0KV
        )

    [52] => Array
        (
            [0] => 9p1PxWCV
            [1] => RnmfH1WE
            [2] => MSTBEv
        )

    [16] => Array
        (
            [0] => Yp4J3o
            [1] => fWQ5Oo
            [2] => 6sxw3u
        )
)


foreach ($classes_array as $key => $value)
{

    $sql = "SELECT studentcode FROM table WHERE classcode = '$classes_array[$key]'";
    $result = mysql_query($sql) or die();
    while($data = mysql_fetch_array($result))
    {
        $studentcodes_array[] = $data['studentcode'];
    }

    foreach ($studentcodes_array as $studentcodeskey => $studentcodesvalue)
    {
        $multid_array[$value][] = $studentcodesvalue;
    }
}

使用上面的代码,不幸的是我没有得到我想要的数组。我得到了这个:

Array
(
    [01] => Array
        (
            [0] => D3kcIvyp
            [1] => DdIhBc
            [2] => 2vx0KV
        )

    [52] => Array
        (
            [0] => D3kcIvyp
            [1] => DdIhBc
            [2] => 2vx0KV
            [3] => 9p1PxWCV
            [4] => RnmfH1WE
            [5] => MSTBEv
        )

    [16] => Array
        (
            [0] => D3kcIvyp
            [1] => DdIhBc
            [2] => 2vx0KV
            [3] => 9p1PxWCV
            [4] => RnmfH1WE
            [5] => MSTBEv
            [6] => Yp4J3o
            [7] => fWQ5Oo
            [8] => 6sxw3u
        )

)

我的代码有什么问题?有人可以帮我解决这个问题吗?

【问题讨论】:

  • 这肯定是一个重复的问题。在“相关”下查看屏幕右侧
  • 嗨 Drew,很抱歉,我已经检查了一些问题.. 但找不到任何问题的答案。
  • 很公平,谢谢 :)

标签: php mysql arrays multidimensional-array


【解决方案1】:

您从不初始化 $studentcodes_array,因此它会记住您之前循环中的所有值。

尝试在while 之前添加$studentcodes_array = array();

【讨论】:

  • 嗨詹姆斯!这解决了我的问题。我可能会尝试很久......非常感谢!
猜你喜欢
  • 2013-04-01
  • 1970-01-01
  • 2015-09-12
相关资源
最近更新 更多