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数组的学习就到这里。
PHP学习3——数组的更多相关文章
- PHP学习之中数组-遍历一维数组【2】
在PHP学习之中数组[1]中学会怎么创建一个数组,如果PHP学习之中数组[1]中的元素多的话,我们访问元素又是一个问题了,下面我们就使用for语句while,foreach来遍历我们的数组: < ...
- Python学习之数组类型一:
Python学习之数组类型一: Numpy中的向量与矩阵: 1.创建: 向量.矩阵均由array函数创建,区别在于向量是v=array( [逗号分隔的元素] ), 矩阵是M=array( [[ ]] ...
- [ 转载 ] Java基础12--基础学习总结——数组
java基础学习总结——数组 一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组的 ...
- Numpy学习之——数组创建
Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...
- [jQuery学习系列二 ]2-JQuery学习二-数组操作
前言 上一篇内容 已经对于Jquery 有了一些认识, 包括Jquery的选择器和DOM对象, 那么这一篇继续来看下Jquery中很实用的Jquery对于数组的操作. Jquery中对数组的操作大致有 ...
- Java菜鸟学习笔记--数组篇(三):二维数组
定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...
- Java SE学习之数组——匿名数组和不规则数组
本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 近期偶然遇到了数组的问题,学习了匿名数组和不规则数组. 匿名数组适用于仅仅使用一次的情况:不规则数组适用是每行数据总数不确定的情 ...
- Scala学习(三)----数组相关操作
数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...
- go语言学习(一):数组/切片
学习区块链之后,发现还要学习加密,接触到的视频是:Go的crypto包,所以开始接触Go.因为和solidity有些相似,但是比solidity简单一些,就开始放松的心态去学习.每天翻着go菜鸟教程, ...
随机推荐
- OpenGL学习脚印:背面剔除(Face Culling)
写在前面 在绘制封闭类型的几何对象时,开启背面剔除功能能够提高渲染性能.本节简要介绍下背面剔除,示例程序可以在我的github下载. 什么是背面剔除 当我们观察场景中对象时,一般只能以一定角度来观察, ...
- “全栈2019”Java第六十章:如何定义接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Logstash使用grok解析IIS日志
Logstash使用grok解析IIS日志 1. 安装配置 安装Logstash前请确认Elasticsearch已经安装正确,参见RedHat6.4安装Elasticsearch5.2.0. 下载链 ...
- 关于jxl的getCellFormat()方法获取表格样式----中文货币乱码
File templateFile = getTempalte(client.getSc_shortName());//这里读取模板文件 WorkbookSettings set1 = new Wor ...
- String,数组,list集合长度的使用
public class Use{ public static void main(String[] args){ int[] arr=new int[]{19,10,20,30,23,13}; // ...
- 使用vue+webpack从零搭建项目
vue到现在已经成为一个热门的框架,在项目实践当中,如果想要创建一个新项目,通常都会使用vue-cli的脚手架工具,毋容置疑能够方便很多,很多东西也不需要自己亲自去配置.都知道,脚手架其实是vue结合 ...
- POJ3076 Sudoku
POJ3076 Sudoku 本题为16*16宫格 剪枝见代码 #include <cstdio> #include <iostream> #include <algor ...
- Centos 7.6 安装selenium+firefox+google chrome(支持xshell运行)
1. 查看Linux 版本 [root@penguin selenium]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ...
- HTML5 Canvas核心技术 图形、动画与游戏开发学习总结
save 和 restore 函数的应用 保存canvas和恢复canvas clip函数的应用 文字的绘制 背景图片的绘制 离屏canvas 基于时间的运动
- android 捕获未try的异常
1.Thread.UncaughtExceptionHandler java里有很多异常如:空指针异常,越界异常,数值转换异常,除0异常,数据库异常等等.如果自己没有try / catch 那么线程就 ...