不好意思 又要麻烦各位了
原例:<?php
$wage=array(
"市场部"=>array(
array(1,"高某","市场部经理",5000.00),
array(2,"洛某","职员",3000.00),
),
"产品部"=>array(
array(1,"李某","产品部经理",6000.00),
array(2,"周某","职员",4000.00),
)
);foreach($wage as $sector=>$table){
echo'<table border="1" width="600" align="center">';
echo'<caption><h2>'.$sector.'10月份工资表</h2></caption>';
echo'<tr bgcolor="#dddddd">';
echo'<th>编号</th><th>姓名</th><th>职务</th><th>工资</th>';
echo'</tr>';
foreach($table as $row){
echo '<tr>';
foreach($row as $col){
echo'<td>'.$col.'</td>';
}
echo'</tr>';
}
echo'</table><br>';
}
?>是这样,上面定义的三位数组可以理解。但到下面已进入foreach就傻了 ,主要有些变量不明白。
为什么比如 $table as $row 将table赋给row 这里用的都是变量 php如何将变量赋给html的标签的呢?我觉得我的问题都很奇怪。
原例:<?php
$wage=array(
"市场部"=>array(
array(1,"高某","市场部经理",5000.00),
array(2,"洛某","职员",3000.00),
),
"产品部"=>array(
array(1,"李某","产品部经理",6000.00),
array(2,"周某","职员",4000.00),
)
);foreach($wage as $sector=>$table){
echo'<table border="1" width="600" align="center">';
echo'<caption><h2>'.$sector.'10月份工资表</h2></caption>';
echo'<tr bgcolor="#dddddd">';
echo'<th>编号</th><th>姓名</th><th>职务</th><th>工资</th>';
echo'</tr>';
foreach($table as $row){
echo '<tr>';
foreach($row as $col){
echo'<td>'.$col.'</td>';
}
echo'</tr>';
}
echo'</table><br>';
}
?>是这样,上面定义的三位数组可以理解。但到下面已进入foreach就傻了 ,主要有些变量不明白。
为什么比如 $table as $row 将table赋给row 这里用的都是变量 php如何将变量赋给html的标签的呢?我觉得我的问题都很奇怪。
还有你需要明白
foreach($array as $key=>$value){}
这个形式是将数值的下标赋值给$key,值内容赋值$value,在这里的话,三维数值会又是一个数值
foreach($array as $value){}这个形式是将值内容赋值$value,在这里的话,会又是一个数值
Array
(
[市场部] => Array
(
[0] => Array
(
[0] => 1
[1] => 高某
[2] => 市场部经理
[3] => 5000
) [1] => Array
(
[0] => 2
[1] => 洛某
[2] => 职员
[3] => 3000
) ) [产品部] => Array
(
[0] => Array
(
[0] => 1
[1] => 李某
[2] => 产品部经理
[3] => 6000
) [1] => Array
(
[0] => 2
[1] => 周某
[2] => 职员
[3] => 4000
) ))
产品部:(array)(array)
这里的市场部和产品部是遍历出来的key
两个数组是遍历出来的value,以此类推
你可以吧$table这个变量改成任意的变量名称,
但是<table >标签名是不能更改的。
你说的对 但是我将$table这个变量改为$tabl 就会报错
【Warning: Invalid argument supplied for foreach() in D:\wamp\www\php\foreach.php on line 25】
这个25行代码为 foreach($tabl as $row){所以会感觉矛盾 既然变量不会作用于标签 那么我的变量名应该不会受限制 但是现在却因为变量名称的改变使得程序出现了问题 感觉我进入了一个错误的模式思维 但是不知道错在哪。。
foreach($tabl as $row){$tabl这个不是你随便取的,你上边是$table,这里就一定要一样,后面as就随便你取。另外,foreach($table as $row)就是在紧跟的大括号里$row都是$table的一个值的复制(或许是数组),但对$row修改并不会影响到$table。foreach($table as $key=>$value){ 里面的$key是$table里每一个值的下标,$value就是值。其实这个很好理解