您的位置:首页 > 编程语言 > PHP开发

【php】foreach和多维数组

2017-04-26 00:00 453 查看
今天工作遇到了一个问题,就是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();一维数组是最简单的,按照数学理解就是点线,也可以理解为线性结构,举个例子

<?php
//这里强调$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("<li>".$key."</li>");
foreach ($value as $key => $val) {
printf("<li>".$key."=>".$val."</li>");
}
}
//这里第一次输出的是key也就是$a=array("0","1");只有key没有value;只是遍历二次象限的x
//第二次foreach中的value就是0,1;然后就遍历内数组,也就是我上面写的二次象限的y层,
先确定x1,然后根据x1,遍历y的所有,在便利x2中y的所有
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息