Php 通过mysql表使用数组和循环创建多维数组
我有一张结构如下的桌子。目前有9名学生在3个班(01班、16班和52班)就读,每个班有3名学生Php 通过mysql表使用数组和循环创建多维数组,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我有一张结构如下的桌子。目前有9名学生在3个班(01班、16班和52班)就读,每个班有3名学生 studentcode | classcode ------------------------- D3kcIvyp | 01 DdIhBc | 01 2vx0KV | 01 9p1PxWCV | 52 RnmfH1WE | 52 MSTBEv | 52 Yp4J3o | 16 fWQ5Oo | 16
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表,创建一个多维数组,其中类代码用作一级键:
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
)
)
我的代码有什么问题?有人能帮我吗?您从不初始化
$studentcodes\u数组
,因此它会记住以前循环中的所有值
尝试添加
$studentcodes_array=array()在您的while
之前输入code>这肯定是一个重复的问题。请看屏幕右侧的RelatedHi Drew,很抱歉,我已经检查了一些问题。。但是找不到我的问题的任何答案。很公平,那么thx:)嗨,詹姆斯!这解决了我的问题。我可能已经试了很久了。。谢谢!