今天工作遇到了一个问题,就是foreach和多维数组的问题,boss有个需求,让我把qric_order_attribute表中的某一个字段查出来,接到任务的时候我以为很简单,不就是一个select语句吗,后来才发现,确实是我想多了,对于我这种不到一年的小白来说,确实有点难,当然大神请无视!言归正传:
qric_order_attribute #订单属性表,表结构很简单
id stock num oid info(text) #其中info字段又有以下字段: name aname fname no price img
1;首先说明一下什么是数组,数组是相同数据类型的元素按照一定的顺序的集合,必须是相同数据类型,php定义一个数组一般是array();一维数组是最简单的,按照数学理解就是点线,也可以理解为线性结构,举个例子
//这里强调$a['0']这样写是不对的,key值不能带引号!!!
//装波逼。w3school在讲数组的时候带引号,然后我测试了好多,报错,哈哈,我居然能发现w3c的错误!
$a=array('1','2','3') //其中这里$a[0]=1;因为数组是从零开始计算的。
//其实这两种写法都不错,w3c也没错,第一种是我的写法,只是加了个引号转移了key值,要不然去掉外包的“”还是报错
$a=array("Bill"=>"60","Steve"=>"56","Mark"=>"31");
echo "$a[Bill]"."$a[Steve]";
$age=array("Bill"=>"60","Steve"=>"56","Mark"=>"31");
echo $age['Bill'] . " years old.";
这里就是典型的一维数组,线性关系。
而二维数组可以看成高中学过的x-y坐标器
以此类推,三维是立体几何的x-y-z坐标器,四维多维,不考虑,反正四维太抽象
//数组说明 $a[常量表达式1][常量表达式2];
$a[2][3] //说明了这是一个二行三列的数组,数组名为a,改数组小标变量有2*3个即:
$a[0][0]; $a[0][1] ; $a[0][2]; $a[0][3]
$a[1][0]; $a[1][1]; $a[1][2]; $a[1][3];
$a[2][0]; $a[2][1]; $a[2][2]; $a[2][3]
例如:
$a=array(
array("0","1","2"),
array("a","b","c"),
);
echo $a[1][1]; //输出b,就是横1,竖1,(数组是从0开始的)
2.下面讲的是foreach
foreach在php中就是遍历数组,
$a=array("a","b","c");
foreach($a as $key=>$value){
echo "$value"; //输出结果就是abc;
}
而当多维数组的时候就需要两个foreach了
$a=array(
array("0","1","2"),
array("a","b","c"),
);
foreach ($a as $key => $value) {
printf("
".$key."");
foreach ($value as $key => $val) {
printf("
".$key."=>".$val."");
}
}
//这里第一次输出的是key也就是$a=array("0","1");只有key没有value;只是遍历二次象限的x
//第二次foreach中的value就是0,1;然后就遍历内数组,也就是我上面写的二次象限的y层,
先确定x1,然后根据x1,遍历y的所有,在便利x2中y的所有
本作品采用《CC 协议》,转载必须注明作者和本文链接
如果觉得《php中数学如何二维数组 如何用数学知识理解多维数组》对你有帮助,请点赞、收藏,并留下你的观点哦!