主要内容:

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

数组

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

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

  1. <?php
  2. //声明数组,并初始化
  3. $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
  4. //输出数组
  5. print_r($xiaoli);
  6.  
  7. echo "<br/>";
  8. $xiaobai[2]="小白";
  9. $xiaobai[]=20;
  10. $xiaobai[]="女";
  11. $xiaobai[]="baidu公司";
  12. $xiaobai[]="xiaobai@php.com";
  13. //输出数组
  14. print_r($xiaobai);
  15.  
  16. echo "<br/>";
  17. $bai["姓名"]="小白";
  18. $bai['年龄']=20;
  19. $bai['性别']="女";
  20. $bai['公司']="baidu公司";
  21. $bai['邮箱']="xiaobai@php.com";
  22. //输出数组
  23. print_r($bai);
  24. ?>

输出

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

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

  1. <?php
  2. //声明 索引数组,并初始化
  3. $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
  4. //输出数组
  5. print_r($xiaoli);
  6.      echo "<br/>"; 
  7. //声明 关联数组,并初始化
  8. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  9. //输出数组
  10. print_r($xiaoli);
  11.  
  12. ?>

输出

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

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

  1. <?php
  2. //声明 索引数组,并初始化
  3. $xiaoli=array("小李",25,"男","google公司","xiaoli@php.com");
  4. //输出数组
  5. print_r($xiaoli);
  6.  
  7. echo "<br/>";
  8. //声明 关联数组,并初始化
  9. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  10. //输出数组
  11. print_r($xiaoli);
  12.  
  13. $a="姓名";
  14. echo "<br/>";
  15. echo $xiaoli[$a];
  16. $a="年龄";
  17. echo "<br/>";
  18. echo $xiaoli[$a];
  19.  
  20. ?>

输出

  1. Array ( [0] => 小李 [1] => 25 [2] => [3] => google公司 [4] => xiaoli@php.com )
  2. Array ( [姓名] => 小李 [年龄] => 25 [性别] => [0] => google公司 [1] => xiaoli@php.com )
  3. 小李
  4. 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

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  5. foreach($xiaoli as $a=>$b){
  6. //each($xiaoli);
  7. echo "数组中 $a 元素是 $b <br/>";
  8. }
  9.  
  10. ?>

输出

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

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

for.php

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  5. for($i=0;$i<count($xiaoli);$i++){
  6. //each($xiaoli);
  7. echo "数组中 ".$i."元素是 ".$xiaoli[$i]." <br/>";
  8. }
  9.  
  10. ?>

输出

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

while_each.php

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  5. while($v=each($xiaoli)){
  6. echo "数组中 ".$v["key"]."元素是 ".$v["value"]." <br/>";
  7. }
  8.  
  9. ?>

输出

  1. 数组中 姓名元素是 小李
  2. 数组中 年龄元素是 25
  3. 数组中 性别元素是
  4. 数组中 0元素是 google公司
  5. 数组中 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

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  5. $a=array_sum($xiaoli);
  6. echo $a;
  7.  
  8. ?>

输出

  1. =>25

in_array.php

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google公司","xiaoli@php.com");
  5. findkey("小李",$xiaoli);
  6. echo "<br/>";
  7. findkey("小小",$xiaoli);
  8.  
  9. //在数组xiaoli中找key
  10. function findkey($key,$xiaoli){
  11. if(in_array($key,$xiaoli)){
  12. echo "fund ".$key;
  13. }else{
  14. echo "not fund ".$key;
  15. }
  16. }
  17.  
  18. ?>

输出

  1. fund 小李
  2. not fund 小小

array_count_values.php

  1. <?php
  2.  
  3. //声明 关联数组,并初始化
  4. $xiaoli=array("姓名"=>"小李","姓名1"=>"小李","姓名2"=>"小李","姓名3"=>"小李",
  5. "年龄"=>25,25,25,25,25,666,1,666,666,
  6. "性别"=>"男","google公司","xiaoli@php.com");
  7. print_r(array_count_values($xiaoli));
  8.  
  9. ?>

输出

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

ok数组的学习就到这里。

PHP学习3——数组的更多相关文章

  1. PHP学习之中数组-遍历一维数组【2】

    在PHP学习之中数组[1]中学会怎么创建一个数组,如果PHP学习之中数组[1]中的元素多的话,我们访问元素又是一个问题了,下面我们就使用for语句while,foreach来遍历我们的数组: < ...

  2. Python学习之数组类型一:

    Python学习之数组类型一: Numpy中的向量与矩阵: 1.创建:  向量.矩阵均由array函数创建,区别在于向量是v=array( [逗号分隔的元素] ), 矩阵是M=array( [[ ]] ...

  3. [ 转载 ] Java基础12--基础学习总结——数组

    java基础学习总结——数组 一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组的 ...

  4. Numpy学习之——数组创建

    Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...

  5. [jQuery学习系列二 ]2-JQuery学习二-数组操作

    前言 上一篇内容 已经对于Jquery 有了一些认识, 包括Jquery的选择器和DOM对象, 那么这一篇继续来看下Jquery中很实用的Jquery对于数组的操作. Jquery中对数组的操作大致有 ...

  6. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  7. Java SE学习之数组——匿名数组和不规则数组

    本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 近期偶然遇到了数组的问题,学习了匿名数组和不规则数组. 匿名数组适用于仅仅使用一次的情况:不规则数组适用是每行数据总数不确定的情 ...

  8. Scala学习(三)----数组相关操作

    数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...

  9. go语言学习(一):数组/切片

    学习区块链之后,发现还要学习加密,接触到的视频是:Go的crypto包,所以开始接触Go.因为和solidity有些相似,但是比solidity简单一些,就开始放松的心态去学习.每天翻着go菜鸟教程, ...

随机推荐

  1. 单机版solr7.3

    搭建Solr7.3单机版 原博客  https://blog.csdn.net/yiqing_summer/article/details/79934584 1.Solr下载:http://mirro ...

  2. centos7 安装git

    centos7下git的安装和配置   git的安装: yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2.想要安装最新版本的的 ...

  3. 设置CameraRollBrowseOptions的宽高

    在利用air的CameraRoll调取ios设备的相册时需要定义位置.我们一般这么操作 var crOpts:CameraRollBrowseOptions = new CameraRollBrows ...

  4. Java 访问修饰符使用规则

    作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 1. ...

  5. Oracle-利用解析函数计算连续、回流

    ---最大连续交易天数 select t2.customer_no,max(t2.co) from (select t1.customer_no,t1.yp) co from (select ctd. ...

  6. 当页面滚动到距顶部一定高度时某DIV自动隐藏和显示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. top 常用命令

    参考文档: http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html [root@linux ~]# top [-d] | to ...

  8. Java实现文件重命名

    最近在做一个Android上面的一个文件管理器的apk,有文件名重命名和剪切的功能. 一般的思路如下: 重命名:先新建一个文件,复制原先的文件,读写文件,最后删除原先文件 剪切:先复制原先的文件,删除 ...

  9. linux用到的命令

    命令行下利用别名打开ss以及设置相关代理(写到~/.bashrc中使永久有效) #open proxy alias proxystart='gsettings set org.gnome.system ...

  10. Mondrian Schema Workbench 概念及常用参数

    Schema Schema 定义了一个多维数据库.包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句.这个逻辑模型实际上提供了这几个概念: Cubes (立方体).维度( Di ...