前言

之前几篇文章分别介绍了PHP的运算符,流程控制,函数。有兴趣的可以去看看。

PHP入门之类型与运算符

PHP入门之流程控制

PHP入门之函数

接下来简单介绍一下数组。

数组初探

为什么要引进数组,因为如果有一个需求,有好几十个数据需要统计,计算,如果不用数组,那么就要定义好几十个变量,这样是不合理的。所以引进了数组的概念。

下面用一个案例入门:如果现在有6个数据,要求他们的和还有平均数。这里使用数组。

代码如下:

  1. <?php
  2. $sums[0]=10;
  3. $sums[1]=11;
  4. $sums[2]=12.6;
  5. $sums[3]=24;
  6. $sums[4]=56;
  7. $sums[5]=28;
  8. $allsums=0; #count系统函数是用来统计数组个数的。
  9. for ($i=0;$i<count($sums);$i++){ #这里使用for循环遍历数组,也可以while循环和do while 循环,都可以。
  10. echo '<br/>'.$sums[$i]; # 但是使用这三个循环遍历,键值不能改,默认的0、1、2等等,只能是数字
  11. $allsums+=$sums[$i]; # 如果想自定义键值,那么就要使用foreach()来遍历数组。
  12. }
  13. echo '<br/>'.$allsums; #求总数
  14. echo '<br/>'.$allsums/count($sums); #求平均数
  15. ?>

理清楚几个概念,用$sums[0]=10来举例

[0] 这个我们叫下标或者关键字。

$sums[0] 这个我们叫做数组的一个元素。

10 这个我们叫做$sums[0]对应的值。

$sums 这个叫做数组的名称。

还有就是元素存放的值可以是任何数据类型。

举个例子

  1. <?php
  2. $arr[0]=123;
  3. $arr[1]=34.789;
  4. $arr[2]="hello";
  5. for($i=0;$i<count($arr);$i++){ #可以正常输出 : 123 34.789 hello
  6. echo '<br/>'.$arr[$i];
  7. }
  8. ?>

第二种创建数组的方法。

举个例子

  1. <?php
  2. $arr=array(123,34.789,"hello");
  3. for ($i=0;$i<count($arr);$i++){
  4. echo '<br/>'.$arr[$i]; #可以正常输出 : 123 34.789 hello
  5. }
  6. ?>

第三种方法创建数组的方法

举个例子:

  1. $arr['logo']="123";
  2. $arr['haha']=34.789;
  3. $arr['qqq']="hello";

或者

$arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello");

这样的话遍历就用foreach()用来遍历。

代码如下

  1. foreach ($arr as $key=>$val){
  2. echo "<br/>$key=$val";
  3. }

数组中键对应的值可以修改,例子如下:

  1. $arr=array("logo"=>123,"haha"=>34.789,"qqq"=>"hello");
  2. $arr['logo']="lxf";
  3. foreach ($arr as $key=>$val){
  4. echo "<br/>$key=$val";
  5. }
  6. echo '<br/>'.$arr['logo'];

我们可以用print_r()或者var_dump()来显示这个数组。

上面的例子显示如下:

Array ( [logo] => lxf [haha] => 34.789 [qqq] => hello )

array(3) { ["logo"]=> string(3) "lxf" ["haha"]=> float(34.789) ["qqq"]=> string(5) "hello" }

如果一个数组为$arr=array(11,33,44);

我们输出 echo $arr[3];因为没有这个键值,所以会报一个错误,在php中不算致命错误,其他比如Java是致命错误, 这个错误叫数组越界

php语言中,数组可以动态增长,举个例子。

  1. $arr=array(4,7,9);
  2. $arr[3]=466;
  3. echo $arr[3];

在这个例子中,会输出466,不会报错。

与PHP数组相关的几个重要函数

(1)count函数

统计数组元素个数

(2)is_array函数

用来确定是不是数组,举个例子。

  1. $arr=array(12,34,24);
  2. echo is_array($arr);
  3. #这里会返回1为真。如果
  4. $arr=123;
  5. echo is_array($arr);
  6. #这里会返回空,为假。

(3)拆分字符串explode("按照什么拆分",字符串),举个例子

  1. $str="老大,老二,老三,老四";
  2. $arr=explode(",",$str);
  3. print_r($arr);

输出结果为:

  1. #由字符串变为数组了。
  2. Array ( [0] => 老大 [1] => 老二 [2] => 老三 [3] => 老四 )

如果要删除某个元素的键-值对需要使用unset()函数,需要注意的是,删除后不会重新建立索引。举个例子:

  1. $arr=array(1,2,5,8);
  2. unset($arr[2]);
  3. print_r($arr);

输出结果为:

unset也可以销毁某个变量

Array ( [0] => 1 [1] => 2 [3] => 8 )

可以同时删除多个

  1. $arr=array(1,2,5,8);
  2. unset($arr[2],$arr[3]);
  3. print_r($arr);

输出结果为:

Array ( [0] => 1 [1] => 2 )

数组运算符

$a + $b 联合 $a 和 $b 的联合。

$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE。

$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。

$a != $b 不等 如果 $a 不等于 $b 则为 TRUE。

$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE。

$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE。

  • 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。

实例

要求:将输入的数据全部输出,并求平均值。

  1. array1.php
  2. <html>
  3. <head>
  4. <title>数组练习</title>
  5. <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
  6. </head>
  7. <body>
  8. <h1>输入6个数据,空格隔开</h1>
  9. <form action="array2.php" method="post">
  10. <input type="text" name="sum">
  11. <input type="submit" value="提交">
  12. </form>
  13. </body>
  14. </html>

array2.php

  1. <?php
  2. $sums=$_POST['sum'];
  3. $arr=explode(" ",$sums);
  4. $allarr=0;
  5. foreach ($arr as $key=>$val){
  6. $allarr+=$val;
  7. #遍历数组
  8. echo '<br/>'."第"."$key"."=".$val;
  9. }
  10. #求总数
  11. echo '<br/>'."总和=".$allarr;
  12. #求平均值
  13. echo '<br/>'."平均数=".round($allarr/count($arr),2);
  14. ?>
  15. <br/><a href="array1.php">返回初页面</a>

下面输入13 34 67 89 89 27 结果如下图:

小结

上面对数组进行了简单的介绍,希望对大家有所帮助。

PHP入门之数组的更多相关文章

  1. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  2. Numpy入门 - 生成数组

    今天是Numpy入门系列教程第一讲,首先是安装Numpy: $ pip install numpy numpy是高性能科学计算和数据分析的基础包,本节主要介绍生成连续二维数组.随机二维数组和自定义二维 ...

  3. java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢--配置JVM

    一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...

  4. JavaScript入门之数组:Array类型详解

    数组应该是每个语言中都用得极度频繁的数据类型,JavaScript也不例外. 个人认为,Js中的Array类型非常强大. 首先没有C/C++等语言需要在数组初始化时指定数组长度(并不可变)的要求. 也 ...

  5. Javascript入门(五)数组操作、循环语句

    一.数组与数组操作 <script type="text/javascript"> //数组定义方式 var list1 = new Array(1,2,3); var ...

  6. 小学生都看得懂的C语言入门(4): 数组与函数

    // 之前判断素数, 只需要到sqrt(x)即可,//更加简单的, 判断能够比已知的小于x的素数整除, 运行更快 #include <stdio.h> // 之前判断素数, 只需要到sqr ...

  7. 小学生都看得懂的C语言入门(3): 数组与函数

    #include <stdio.h> int main() { int x; ; ; scanf("%d",&x){ sum+=x; cnt++; scanf( ...

  8. Shell - 简明Shell入门07 - 数组(Array)

    示例脚本及注释 #!/bin/bash test0=() # 定义数组 test1=(a b c d e f) # 定义数组 test2=( # 定义数组 'A?' "BB!" C ...

  9. GO入门——4. 数组、切片与map

    1. 数组 定义数组的格式:var [n],n>=0 数组长度也是类型的一部分,因此具有不同长度的数组为不同类型 注意区分指向数组的指针和指针数组 //数组的指针 a := [2]int{1, ...

随机推荐

  1. 移除hmtl5 input type=“number”的step验证

    设置 step="any"例如:<input type="number" step="any" value=""& ...

  2. nginx配置文件服务器——带说明

    需求: 搭建一个文件服务器,提供指定软件下载,在访问文件服务器下载软件时,在访问的主页上要有对应的软件使用.安装等说明(本来是可以搞一个readme的,但这个在文件服务器上要下载还要打开,还不如直接显 ...

  3. Python Hacking Tools - Web Scraper

    Preparation: Python Libray in the following programming: 1. Requests Document: https://2.python-requ ...

  4. Redis 6.0 新特性 ACL 介绍

    Redis 6.0 新特性 ACL 介绍 Intro 在 Redis 6.0 中引入了 ACL(Access Control List) 的支持,在此前的版本中 Redis 中是没有用户的概念的,其实 ...

  5. Makefile中的奇葩字符

    % : Makefile规则通配符,一般出现在目标或是依赖中 * : shell命令中的通配符,一般出现在命令中 $@:目标的名字 $^:所有依赖的名字 $<:第一个依赖的名字 $?:所有依赖中 ...

  6. 一起学Blazor WebAssembly 开发(3)

    接着上篇,本篇开始讲下实现登录窗口,先看下大概的效果图: 打开的效果,没有美工美化 点登录校验得到不能为空 我在做blazor时用到了一个ui框架,这个框架名叫Ant Design blazor(ht ...

  7. 面试高频SpringMVC执行流程最优解(源码分析)

    文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star! 搜索关注微信公众号 码出Offer 领取各种学习资料! SpringMVC执行流程 SpringMVC概述 Spri ...

  8. Netty 学习笔记(1) ------ Hello World

    服务端启动流程 package com.example.netty; import com.example.netty.handler.HelloServerHandler; import io.ne ...

  9. class初探

    我们说类的时候,先回忆一下es5的构造函数 function myobj(x,y){ this.x= x; this.y =y; } myobj.prototype.add = function(){ ...

  10. PHP strtolower() 函数

    实例 把所有字符转换为小写: <?php高佣联盟 www.cgewang.comecho strtolower("Hello WORLD.");?> 定义和用法 str ...