PHP 数组简介
PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。
官方说明: Array 数组
PHP 数组的定义
- 数组是 php 中的重要类型之一, 是复合类型
- 数据的集合, 在 php中数组是一个有序映射
PHP 数组的定义与分类
-
索引数组: 数组的下标是数值
-
关联数组: 数组的下标为字符是关联数组
-
注意: php 中数组其实是不区分索引和关联数组的, 它们都是根据键名 key 值来找到对应的值
定义数组
-
通过 array() 形式
-
通过 [] 动态创建
-
通过 range() 和 compact () 快速创建
(a) range — 根据范围创建数组,包含指定的元素
(b) compact — 建立一个数组,包括变量名和它们的值
-
通过 define() 定义一个常量数组, 注意要 PHP 7.0+
<?php
header('content-type: text/html;charset=utf-8');
// 通过 array()
$arr1 = array(1,2,3);
print_r($arr1);
/*
* array() 结果:
* Array
* (
* [0] => 1
* [1] => 2
* [2] => 3
* )
*/
// []
$arr2 = [0=>'li',1=>'guo',2=>'you'];
print_r($arr2);
/*
* [] 结果:
* Array
* (
* [0] => li
* [1] => guo
* [2] => you
* )
*/
// range()
$arr3 = range(1,10);
print_r($arr3);
/*
* range() 结果:
* Array
* (
* [0] => 1
* [1] => 2
* [2] => 3
* [3] => 4
* [4] => 5
* [5] => 6
* [6] => 7
* [7] => 8
* [8] => 9
* [9] => 10
* )
*/
$arr4 = range(-5,10,2);
print_r($arr4);
/*
* range() 结果:
* Array
* (
* [0] => -5
* [1] => -3
* [2] => -1
* [3] => 1
* [4] => 3
* [5] => 5
* [6] => 7
* [7] => 9
* )
*/
// compact()
$username = 'guoyou';
$age = 24;
$email = 'guoyou.li@foxmail.com';
$arr5 = compact('username','age','email');
print_r($arr5);
/*
* compact() 结果:
* Array
* (
* [username] => guoyou
* [age] => 24
* [email] => guoyou.li@foxmail.com
* )
*/
// define() PHP 7.0+
//define('INFO', array('username'=>'liguoyou','tel'=>'13510748888'));
define('INFO', ['username'=>'liguoyou','tel'=>'13510748888','age'=>'24']);
print_r(INFO);
/*
* define()结果: 注意要 php 7.0+
* Array
* (
* [username] => liguoyou
* [tel] => 13510748888
* [age] => 24
* )
*/
数组的运算符相关
-
+
合并数组: 如果键名相同, 使用前面数组的值 -
==
只比较键名和键值是否相同, 如果相同返回 true, 否则返回 false -
===
既要比较键名和键值是否相同, 还要比较类型和循序是否相同
<?php
header('content-type: text/html;charset=utf-8');
// 数组的运算相关
$arr1 = ['a','b','c'];
$arr2 = ['t','t','t'];
$arr3 = $arr1 + $arr2;
print_r($arr3);
// 结果: Array ( [0] => a [1] => b [2] => c )
$arr4 = $arr2 + $arr1;
print_r($arr4);
// 结果: Array ( [0] => t [1] => t [2] => t )
$arr5 = $arr1 + [2=>'B',4=>'D'];
print_r($arr5);
// 结果: Array ( [0] => a [1] => b [2] => c [4] => D )
$arr6 = ['user'=>'abc','age'=>23];
$arr7 = ['age'=>23,'user'=>'abc'];
var_dump($arr6 == $arr7); // bool(true)
var_dump($arr6 === $arr7); // bool(false)
学习资料来源: https://class.imooc.com/sc/30
网友评论