如何用数学知识理解多维数组

今天工作遇到了一个问题,就是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的所有
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

还以为有什么黑科技。。。。。。

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!