博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP学习3——数组
阅读量:6624 次
发布时间:2019-06-25

本文共 3484 字,大约阅读时间需要 11 分钟。

 主要内容:

  1. 简介
  2. 常用的方法
  3. 循环遍历数组
  4. PHP预定义数组
  5. 数组的处理函数

数组

PHP由于是弱类型的语言,他的变量类型是可以自由变换的,他的数组很自由,长度是可以动态增加的。

他的索引默认为数字0开始,另外有一个很强大的地方就是,他的数组可以和字典一样,通过(key-value)键值对模式来存储(厉害哦)

"; $xiaobai[2]="小白"; $xiaobai[]=20; $xiaobai[]="女"; $xiaobai[]="baidu公司"; $xiaobai[]="xiaobai@php.com"; //输出数组 print_r($xiaobai); echo "
"; $bai["姓名"]="小白"; $bai['年龄']=20; $bai['性别']="女"; $bai['公司']="baidu公司"; $bai['邮箱']="xiaobai@php.com"; //输出数组 print_r($bai);?>

输出

Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) Array ( [2] => 小白 [3] => 20 [4] => 女 [5] => baidu公司 [6] => xiaobai@php.com ) Array ( [姓名] => 小白 [年龄] => 20 [性别] => 女 [公司] => baidu公司 [邮箱] => xiaobai@php.com )

使用数字作为key的叫做“索引数组”,使用其他作为key的叫做“关联数组”,可以使用array在初始的时候就是默认使用索引,也可以制定为关联数组。

";  //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli);?>

输出

Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google公司 [1] => xiaoli@php.com )

key也可以是变量,这样更灵活

"; //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli); $a="姓名"; echo "
"; echo $xiaoli[$a]; $a="年龄"; echo "
"; echo $xiaoli[$a];?>

输出

Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => xiaoli@php.com ) Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google公司 [1] => xiaoli@php.com ) 小李25

常用的方法

each($arr)返回数组中当前指针的键值对

print_r($arr)输出数组所有元素

var_dump($arr)输出数组的所有元素以及类型信息

list($a,$b)=array("小李",25,"男","google公司")这里一次性给多个变量赋值,$a="小李",$b=25;

 

循环遍历数组

这里有3中方法来遍历数字

  • for($i=0;$i<count($arr);$i++){}
  • foreach($arr as $x=>$y){}
  • while($v=each($arr)){}

foreach.php

"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); foreach($xiaoli as $a=>$b){ //each($xiaoli); echo "数组中 $a 元素是 $b
"; }?>

输出

数组中 姓名 元素是 小李 数组中 年龄 元素是 25 数组中 性别 元素是 男 数组中 0 元素是 google公司 数组中 1 元素是 xiaoli@php.com

貌似for循环只能遍历纯索引数组

for.php

"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); for($i=0;$i
"; }?>

输出

数组中 0元素是 google公司 数组中 1元素是 xiaoli@php.com Notice: Undefined offset: 2 in C:\xampp\htdocs\demo2.php on line 7数组中 2元素是 Notice: Undefined offset: 3 in C:\xampp\htdocs\demo2.php on line 7数组中 3元素是 Notice: Undefined offset: 4 in C:\xampp\htdocs\demo2.php on line 7数组中 4元素是

while_each.php

"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); while($v=each($xiaoli)){ echo "数组中 ".$v["key"]."元素是 ".$v["value"]."
"; }?>

输出

数组中 姓名元素是 小李 数组中 年龄元素是 25 数组中 性别元素是 男 数组中 0元素是 google公司 数组中 1元素是 xiaoli@php.com

PHP预定义数组

  • $GLOBALS(包含了全部变量的全局组合数组)
  • $_SERVER(头信息,路径,脚本位置等信息的数组)
  • $_POST
  • $_GET
  • $_COOKIE
  • $_SESSION
  • $_REQUEST(默认情况下包含了$_POST,$_GET,$_COOKIE的数组)

数组的处理函数

array_sum($arr)返回数组中所有value的值的和,字符串当做0

in_array($key,$arr)如果$key在$arr数组中,返回true,否则返回false

array_count_values($arr)用来统计所有值出现的次数

array_sum.php

"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); $a=array_sum($xiaoli); echo $a;?>

输出

=>25

in_array.php

"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); findkey("小李",$xiaoli); echo "
"; findkey("小小",$xiaoli); //在数组xiaoli中找key function findkey($key,$xiaoli){ if(in_array($key,$xiaoli)){ echo "fund ".$key; }else{ echo "not fund ".$key; } } ?>

输出

fund 小李not fund 小小

array_count_values.php

"小李","姓名1"=>"小李","姓名2"=>"小李","姓名3"=>"小李", "年龄"=>25,25,25,25,25,666,1,666,666, "性别"=>"男","google公司","xiaoli@php.com"); print_r(array_count_values($xiaoli)); ?>

输出

Array ( [小李] => 4 [25] => 5 [666] => 3 [1] => 1 [男] => 1 [google公司] => 1 [xiaoli@php.com] => 1 )

 

ok数组的学习就到这里。

 

转载地址:http://vmtpo.baihongyu.com/

你可能感兴趣的文章
使用Solr构建企业级的全文检索(四)---------写入文档
查看>>
Routing Error uninitialized constant TransController
查看>>
设计模式(二): BUILDER生成器模式 -- 创建型模式
查看>>
git: No refs in common and none specified; doing no
查看>>
I.MX6 天嵌 E9 U-boot menu hacking
查看>>
Eclipse中Android项目引用其他项目时链接源码的方法
查看>>
Mac PD虚拟机卸载删除
查看>>
java中String、StringBuffer、StringBuilder的区别
查看>>
EL 表达式
查看>>
WPF水珠效果按钮组
查看>>
一个不错的命令行解析类
查看>>
I.MX6 FFmpeg 录制视频
查看>>
VHDL语言中buffer与inout的区别
查看>>
关于OSPF的一些问题
查看>>
OpenCASCADE Shape Location
查看>>
squid的正向代理和反向代理
查看>>
重磅消息nginx支持js语言
查看>>
linux下命令与文件的查询
查看>>
第8章6节MonkeyRunner启动运行过程-启动Monkey 3
查看>>
SEO意识的网站设计:设计和SEO的完美结合可能么?
查看>>