PHP学习3——数组
主要内容:
- 简介
- 常用的方法
- 循环遍历数组
- PHP预定义数组
- 数组的处理函数
数组
PHP由于是弱类型的语言,他的变量类型是可以自由变换的,他的数组很自由,长度是可以动态增加的。
他的索引默认为数字0开始,另外有一个很强大的地方就是,他的数组可以和字典一样,通过(key-value)键值对模式来存储(厉害哦)
<?php //声明数组,并初始化 $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli); echo "<br/>"; $xiaobai[2]="小白"; $xiaobai[]=20; $xiaobai[]="女"; $xiaobai[]="baidu公司"; $xiaobai[]="xiaobai@php.com"; //输出数组 print_r($xiaobai); echo "<br/>"; $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在初始的时候就是默认使用索引,也可以制定为关联数组。
<?php //声明 索引数组,并初始化 $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli); echo "<br/>"; //声明 关联数组,并初始化 $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也可以是变量,这样更灵活
<?php //声明 索引数组,并初始化 $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli); echo "<br/>"; //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); //输出数组 print_r($xiaoli); $a="姓名"; echo "<br/>"; echo $xiaoli[$a]; $a="年龄"; echo "<br/>"; 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
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); foreach($xiaoli as $a=>$b){ //each($xiaoli); echo "数组中 $a 元素是 $b <br/>"; } ?>
输出
数组中 姓名 元素是 小李 数组中 年龄 元素是 25 数组中 性别 元素是 男 数组中 0 元素是 google公司 数组中 1 元素是 xiaoli@php.com
貌似for循环只能遍历纯索引数组
for.php
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); for($i=0;$i<count($xiaoli);$i++){ //each($xiaoli); echo "数组中 ".$i."元素是 ".$xiaoli[$i]." <br/>"; } ?>
输出
数组中 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
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); while($v=each($xiaoli)){ echo "数组中 ".$v["key"]."元素是 ".$v["value"]." <br/>"; } ?>
输出
数组中 姓名元素是 小李 数组中 年龄元素是 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
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); $a=array_sum($xiaoli); echo $a; ?>
输出
=>25
in_array.php
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com"); findkey("小李",$xiaoli); echo "<br/>"; 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
<?php //声明 关联数组,并初始化 $xiaoli=array("姓名"=>"小李","姓名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数组的学习就到这里。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PHP mail()可能导致的问题
参考文献:https://xz.aliyun.com/t/2501 题目网址:https://www.ripstech.com/php-security-calendar-2017/ 环境: php version < 5.2.0 phpmailer < 5.2.18 php 没有安装 pcre(no default) safe_mode = false(default) 题目 class Mailer { private function sanitize($email) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return ''; } return escapeshellarg($email); } public function send($data) { if (!isset($data['to'])) { $data['to'] = 'none@ripstech.com'; } else { $data['to'] = $this->sanitize($data['to']); } if (!i...
- 下一篇
Java内存与垃圾回收调优
Java内存与垃圾回收调优 ImportNew-进林 要了解Java垃圾收集机制,先理解JVM内存模式是非常重要的。今天我们将会了解JVM内存的各个部分、如何监控以及垃圾收集调优。 Java(JVM)内存模型 正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代(YoungGeneration)和老年代(Old Generation)。 年轻代 年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两个Survivor区。 年轻代空间的要点: 大多数新建的对象都位于Eden区。 当Eden区被对象填满时,就会执行Minor GC。并把所有存活下来的对象转移到其中一个survivor区。 Minor GC同样会检查存活下来的对象,并把它们转移到另一个survivor区。这样在一段时间内,总会有一个空的survivor区。 经过多次GC周期后,仍然存活下来的对象会被转移到年老代内存空间。通常这是在年轻代有资格提升到年老代前通过设定年龄阈值来完成的。 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度