前言:接下来介绍的PHP学习笔记之数组的定义、遍历,希望对您有帮助。那么下面我们一起看看,具体内容所述如下:

php中数组是一个特殊的数据类型,可以说是对象也可说是存储器了, 他里面可以存储php中其它数据类型的内容,如一个数组中可以有字符型,数字型,对象等等

① 创建数组第一种方法

$arr[0]=123;

$arr[1]=90;

….

概念:

[0] -> 这个我们称为下标,或者称为 关键字

$arr[0] -> 这个称为数组的一个元素.

$arr[0]=123; 123 表示该$arr[0]元素对应的值

$arr –》这个是该数组的名称.

☞在php数组中,元素存放的值可以是任意数据数据类型

② 创建数组的第二种方法

基本语法

$数组名=array(值1,值2,.......);

举例说明:

$arr=array(1,90,"helllo",89.5);

③ 第三种方式创建数组(在默认情况下,我们的元素的下标,是从0开始给你编号,但是实际上,也可以自己指定)

基本语法$arr[‘logo’]=“北京“;

$arr[’hsp’]=123

....

或者

$arr=array(“logo“=>“北京“,“hsp“=>123,4=>678);

数组的遍历方法:

注: 如果使用 for while do..while 要确定该数组的下标是从 0开始顺序排放

数组共有多少个元素,可以使用系统函数count,代码如下:

for循环遍历方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18for($i=0;$i

echo '
'.$arr[$i];

}

//while循环遍历方法

$i=0;//循环控制变量

while($i

echo "
".$colors[$i];

$i++;

}

//do..while

$i=0;//循环控制变量

do{

echo "
".$colors[$i];

$i++;

}while($i

//foreach 遍历方法

这个foreach适用范围更广

1

2

3

4

5foreach($arr as $key=>$val){

echo $key."=".$val."
";

}

php的数组相关的函数

① count 函数

基本用法是

count($数组名); 可以统计该数组共有多少元素.

② is_array

③ print_r 和 var_dump

④ explode 对字符串进行分割

案例:

1

2

3

4

5

6​$str="浙江&台州&杭州";

//在实际开发中,涉及到字符串的拆分,可以考虑

$arr=explode("&",$str);

print_r($arr);

数组查找

实例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13<?php

$arr_a =array(0 =>"a", 1 =>"b", 2 =>"c");

$key =array_search("a",$arr_a);

if($key !== FALSE ){

echo "键名为:$key";

}else {

echo '无匹配结果';

}

?>

//例子输出结果如下:

//键名为:0

array_key_exists()函数

如果在一个数组中找到一个指定的键,函数array_key_exists()返回true,否则返回false。其形式如下:

boolean array_key_exists(mixed key,array array);

下面的例子将在数组键中搜索apple,如果找到,将输出这个水果的颜色,代码如下:

1

2

3

4

5

6

7

8

9

10$fruit["apple"] ="red";

$fruit["banana"] ="yellow";

$fruit["pear"] ="green";

if(array_key_exists("apple",$fruit)){

printf("apple's color is %s",$fruit["apple"]);

}

//执行这段代码得到的结果:

//apple's color is red

合并数组

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:

array array_merge (array array1 array2…,arrayN)

这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引,代码如下:

1

2

3

4

5

6

7

8

9

10<?php

$fruits =array("apple","banana","pear");

$numbered =array("1","2","3");

$cards =array_merge($fruits,$numbered);

print_r($cards);

// output

// Array ( [0] => apple [1] => banana [2] => pear [3] => 1 [4] => 2 [5] => 3 )

?>

2.追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组,其形式为:

array array_merge_recursive(array array1,array array2[…,array arrayN])

程序实例代码如下:

1

2

3

4

5

6

7

8

9

10<?php

$fruit1 =array("apple" =>"red","banana" =>"yellow");

$fruit2 =array("pear" =>"yellow","apple" =>"green");

$result =array_merge_recursive($fruit1,$fruit2);

print_r($result);

// output

// Array ( [apple] => Array ( [0] => red [1] => green ) [banana] => yellow [pear] => yellow )

?>

现在键 apple 指向一个数组,这个数组由两个颜色值组成的索引数组。

3. 连接数组

array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:

array array_combine(array keys,array values)

注意,两个输入数组必须大小相同,不能为空,示例代码如下:

1

2

3

4

5

6

7

8

9

10<?php

$name =array("apple","banana","orange");

$color =array("red","yellow","orange");

$fruit =array_combine($name,$color);

print_r($fruit);

// output

// Array ( [apple] => red [banana] => yellow [orange] => orange )

?>

4. 拆分数组 array_slice()

array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式:

array array_slice (array array, int offset[,int length])

offset 为正值时,拆分将从距数组开头的offset 位置开始;如果offset 为负值,则拆分从距数组末尾的offset 位置开始。如果省略了可选参数length,则拆分将从offset 开始,一直到数组的最后一个元素,如果给出了length 且为正数,则会在距数组开头的offset+length 位置结束,相反,如果给出了length且为负数,则在距数组开头的count(input_array)-|length|位置结束,考虑一个例子,代码如下:

1

2

3

4

5

6

7

8

9<?php

$fruits =array("Apple","Banana","Orange","Pear","Grape","Lemon","Watermelon");

$subset =array_slice($fruits, 3);

print_r($subset);

// output

// Array ( [0] => Pear [1] => Grape [2] => Lemon [3] => Watermelon )

?>

数组排序(下面方法用于一维数组)

·sort() 函数用于对数组单元从低到高进行排序。

·rsort() 函数用于对数组单元从高到低进行排序。

·asort() 函数用于对数组单元从低到高进行排序并保持索引关系。

·arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。

·ksort() 函数用于对数组单元按照键名从低到高进行排序。

·krsort() 函数用于对数组单元按照键名从高到低进行排序。

多维数组排序,比如有个多为数组,代码如下:

1

2

3

4

5

6

7

8$arr =array(

‘d’ =>array(‘id’ => 5, ‘name’ => 1, ‘age’ => 7),

‘b’ =>array(‘id’ => 2,’name’ => 3,’age’ => 4),

‘a’ =>array(‘id’ => 8,’name’ => 10,’age’ => 5),

‘c’ =>array(‘id’ => 1,’name’ => 2,’age’ => 2)

);

需要对二维数组中的 age 项排序。

需要用到PHP的内置函数 array_multisort(),可以看手册。

自定义函数,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){

if(is_array($multi_array)){

foreach ($multi_array as $row_array){

if(is_array($row_array)){

$key_array[] =$row_array[$sort_key];

}else{

return false;

}

}

}else{

return false;

}

array_multisort($key_array,$sort,$multi_array);

return $multi_array;

}

//处理

echo ”

“;

print_r(multi_array_sort($arr,’age’));exit;

//输出

Array

(

[c] => Array

(

[id] => 1

[name] => 2

[age] => 2

)

[b] => Array

(

[id] => 2

[name] => 3

[age] => 4

)

[a] => Array

(

[id] => 8

[name] => 10

[age] => 5

)

[d] => Array

(

[id] => 5

[name] => 1

[age] => 7

)

)

结语:以上就是分享给大家的PHP学习笔记,数组,定义,遍历内容了,希望大家多多支持三零网站。更多技术内容可以看下面相关文章,如果有任何疑问都可以一起留言交流。

延伸阅读:

·php 数组定义和初始化的实现方式

·php 二维数组定义的心得

·PHP数组定义、数组创建的实现方法

·php 数组定义方式

·PHP数组定义、初始化和数组元素的显示

·PHP中数组定义的几种方法

·PHP数组的定义和填充

php一维数组的定义,PHP 数组定义、遍历的实现方法相关推荐

  1. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义

    在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...

  2. matlab创建数组对象,MATLAB一维数组(向量)的定义

    在 MATLAB 中,向量和矩阵主要是由数组表示的. 数组运算始终是 MATLAB 的核心内容,并且 MATLAB 区别于其他编程语言最大的优势就是数组计算.这种编程的优势使得计算程序简单.易读,程序 ...

  3. 怎样定义和引用一维数组,二维数组

    s1,s2,s3,...,s30 右下角的数字称为下标(subscript) 一批具有同名的同属性的数据就组成了一个数组(array),s就是数组名. 1.怎样定义和引用一维数组 一维数组.二维数组. ...

  4. C++中动态定义一维数组,二维数组,三维数组的方法

    . #include<iostream> #include <ctime> #include <cstdlib> using namespace std;int m ...

  5. 一维数组和二维数组的定义及用法

    一维数组的定义 类型说明符  数组名 [常量表达式]: 在此说明:常量表达式必须是常量和常量符号.常量表达式定义了数组的长度.在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的 ...

  6. 数组的定义,一维数组,二维数组与变长数组

    目录 1.数组 2.一维数组 3.二维数组 5.数组的大小 6.遍历数组 7.数组常见错误 1.数组 简介:是一种容器 <类型> 变量名称[元素数量] ( c99之前元素数量必须是整数) ...

  7. 6-2 指针与数组-矩阵的各列求和分数 10 本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和。将各列和存放在一个至少7个单元的一维数组中。函数接口定义:

    本题要求实现一个函数,求一个n (小于10)行7列的二维数组各列的和.将各列和存放在一个至少7个单元的一维数组中. 函数接口定义: void fun ( int data[][7], int resu ...

  8. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组

    1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...

  9. Shell数组:shell数组的定义、数组长度

    Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利 ...

最新文章

  1. 一张图,一棵大树,六种人, 六载人生 ~
  2. 使用SQL Server分析服务定位目标用户
  3. SharePoint 2007 开发系列(14) 调试sharepoint web part
  4. 《四世同堂》金句摘抄(十一)
  5. 重学TCP协议(12)SO_REUSEADDR、SO_REUSEPORT、SO_LINGER
  6. STM32----摸石头过河系列(七)
  7. php 启动管理工具下载,PHP管理工具compser windows下安装
  8. Silverlight监测工具:Silverlight Spy
  9. C# Chart详细解析
  10. 做个简单的Java学生考勤系统06--签到功能完善
  11. Java入门基础 安装并配置Java软件和JDK
  12. Windows: 定制多用户多Registry键脚本
  13. 计算T临界值分布的表
  14. Python爬虫之BeautifulSoup
  15. android 系统时间不准确,小米手机时间不准确怎么调小米手机时间不准确怎样调...
  16. Corosync双心跳冗余方案配置
  17. Vue2.0开发之——购物车案例-Footer组件封装-计算商品的总价格(51)
  18. ecc6.0 oracle安装,SAP ECC v6.0 SR3 IDES Oracle 10.2.0.2 安装指南
  19. 关键字super的含义及应用
  20. IMF国际货币基金组织

热门文章

  1. 【阿ken经验总结】要考英语四六级的你一定要知道的!
  2. AI智能检测服务器,AI智能分析预警系统主机
  3. Linux-日志管理篇
  4. 车载导航进阶「不输」手机,哪些供应商在领跑导航引擎赛道
  5. 洛谷P5274 优化题(ccj)
  6. CMD命令下获取昨日日期
  7. 【Java】Java获取昨天日期的正确姿势
  8. 高中计算机教师证试题,2020下高中信息技术教师资格证面试试题及答案【1月10日下午】...
  9. poj3255次短路
  10. 计算机软考网络工程师难度大吗,国家软考的网络工程师与CCNP相比,哪个难?...