搜索
首页
笔记
案例
关于
课程列表
PHP
php基础
基本语法
流程控制
函数
数组
对象
Trait
字符串处理
正则表达式
SPL
输出缓存
php与xml
生成器
php常用扩展
错误与异常处理
日期与时间
文件系统
图像处理
数据库开发
Mysqli扩展
Db类
高级功能
会话控制
CURL
PHP安全
PHP版本
从5.6到7.0
从7.0到7.1
课程导航
计算机基础知识
C
Linux
linux常用软件
计算机网络
程序员修养
设计模式
工具
Git
composer
vim
IntelliJ IDEA
wireshark
laravel
Spring
SpringMVC
Maven
数据库
MySQL
Redis
MongoDB
JDBC
Mybatis
MyBatis-Plus
服务端编程
PHP
Java
shell script
JavaWeb
HTML / CSS
HTML
CSS
HTML5
CSS3
BOOTSTRAP
JavaScript
JavaScript
JQuery
layui
函数
对象
数组
## 数组定义 三种方法:直接为数组元素赋值、用array()、使用[] ````php // 方法一 $arr1[0] = 13; $arr1[1] = 'a'; $arr1[4] = false; print_r($arr1); // Array ( [0] => 13 [1] => a [4] => ) $arr2[] = 32; $arr2[] = 132; $arr2[] = 'cga'; $arr2[] = 'hell'; print_r($arr2); // Array ( [0] => 32 [1] => 132 [2] => cga [3] => hell ) // 方法二 $arr = array(32,'ad','cdd'); // 方法三 $arr = [ [ 'name' => 'gwx', 'age' => 29 ], [ 'name' => 'nana', 'age' => 27 ] ]; ```` ## 数据遍历 ````php // for循环遍历(只能遍历索引数组) $arr = [32,432,'asd','bca']; $len = count($arr); for ($i=0; $i < $len; $i++) { echo $arr[$i] . '
'; } // foreach遍历 $arr = ['name' => 'gwx', 'age' => 28, 'sex' => '男']; foreach ($arr as $key => $val) { echo "$key=>$val
"; } /** * 数组指针遍历 * current():取得当前指针内容的内容资料 * key():读取目前指针所指向的索引值 * next() * prev() * end() * reset() */ $arr = [ 'name' => 'gwx', 'age' => 28, 'sex' => '男' ]; echo key($arr) . '=>' . current($arr) . '
'; next($arr); echo key($arr) . '=>' . current($arr) . '
'; next($arr); echo key($arr) . '=>' . current($arr) . '
'; ```` ## 预定义数据 | 预定义数组 | 介绍 | | :---- | :---- | | $_ENV | 执行环境提交至脚本的变量 | | $_REQUEST | 经由get、post和cookie机制提交至脚本的变量,因此该数组并不值得信任 | | $_POST | 经由http post方法提交至脚本的变量 | | $_GET | 经由URL请求提交至脚本的变量 | | $_FILES | 经由http、post文件上传而提交至脚本的变量 | | $_COOKIE | 经由http cookies方法提交至脚本的变量 | | $_SESSION | 当前注册给脚本会话的变量 | | $_SERVER | 变量由web服务器设定或者直接与当前脚本的执行环境相关联 | | $GLOBALS |包含一个引用指向每个当前脚本的全局变量范围内有效的变量。该数组的键名为全局变量的名称| ````php if ($_SERVER['HTTP_REFERER'] == '') { echo '本系统不允许从地址栏访问'; } ```` ## 数组相关函数 ### 键值操作 arrray_values()、array_keys()、array_search()、in_array()、extract()、array_key_exists()、array_flip()、array_reverse() ````php $lnmpa = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php', 'a' => 'apache']; // array_values()及array_keys() print_r(array_values($lnmpa)); // Array ( [0] => linux [1] => nginx [2] => mysql [3] => php [4] => apache ) print_r(array_keys($lnmpa)); // Array ( [0] => l [1] => n [2] => m [3] => p [4] => a ) $prefix = 'jpg'; if (in_array($prefix, ['jpg', 'jpeg', 'png', 'gif'])) { echo '通过'; } else { echo '不通过'; } $lnmpa = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php', 'a' => 'apache']; extract($lnmpa); echo $l; // linux echo $n; // nginx echo $m; // mysql $lnmpa = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php', 'a' => 'apache']; print_r(array_reverse($lnmpa)); // Array ( [a] => apache [p] => php [m] => mysql [n] => nginx [l] => linux ) print_r(array_flip($lnmpa)); // Array ( [linux] => l [nginx] => n [mysql] => m [php] => p [apache] => a ) ```` ### 统计元素个数及唯一性 count()、array_uniqe()、array_count_values() ````php $arr = [1,3,4,4,4,56,6,3]; print_r(array_unique($arr)); // Array ( [0] => 1 [1] => 3 [2] => 4 [5] => 56 [6] => 6 ) print_r(array_count_values($arr)); // Array ( [1] => 1 [3] => 2 [4] => 3 [56] => 1 [6] => 1 ) ```` ### 回调 array_filter()、array_map()、array_walk() ````php $arr = range(1,10); $filter = array_filter($arr, function ($input) { return $input \\% 2 == 0; }); print_r($filter); // Array ( [1] => 2 [3] => 4 [5] => 6 [7] => 8 [9] => 10 ) $map = array_map(function ($v){ return $v*2; },$arr); print_r($map); // Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 [5] => 12 [6] => 14 [7] => 16 [8] => 18 [9] => 20 ) ```` ### 排序 sort()、rsort()、usort()、asort()、arsort()、uasort()、ksort()、krsort()、uksort()、natsort()、natcasesort()、array_multisort() sort:按值排序,不保留键名 asort:按值排序,保留键名 ksort:按键排序,保留键名 rsort:按值反向排序 usort:使用自定义回调函数排序 ````php $lnmp = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php']; sort($lnmp); print_r($lnmp); // Array ( [0] => linux [1] => mysql [2] => nginx [3] => php ) $lnmp = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php']; rsort($lnmp); print_r($lnmp); // Array ( [0] => php [1] => nginx [2] => mysql [3] => linux ) $lnmp = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php']; usort($lnmp, function ($v1, $v2) { return strlen($v1) - strlen($v2); // 按字符串长度排序 }); print_r($lnmp); // Array ( [0] => php [1] => linux [2] => nginx [3] => mysql ) $lnmp = ['l' => 'linux', 'n' => 'nginx', 'm' => 'mysql', 'p' => 'php']; asort($lnmp); print_r($lnmp); // Array ( [l] => linux [m] => mysql [n] => nginx [p] => php ) $lnmp = ['name' => 'gwx', 'age' =>29, 'sex' => '男']; ksort($lnmp); print_r($lnmp); // Array ( [age] => 29 [name] => gwx [sex] => 男 ) ```` ### 结构 array_pop()、array_push()、array_shift()、array_unshift() ### 拆分、合并、分解及接合 array_slice()、array_splice() ````php $lnmp = ['name' => 'gwx', 'age' =>29, 'sex' => '男', 'profession' => 'phper', 'wife' => '宋娜娜']; print_r(array_slice($lnmp, 1,3)); // Array ( [age] => 29 [sex] => 男 [profession] => phper ) print_r(array_slice($lnmp, 0,-1)); // Array ( [name] => gwx [age] => 29 [sex] => 男 [profession] => phper ) ```` array_combine():合并两个数组组成一个新的数组,其中一个数组是键名,另一个数组的值为键值 ````php $arr1 = ['l', 'n', 'm', 'p']; $arr2 = ['linux', 'nginx', 'mysql', 'php']; print_r(array_combine($arr1, $arr2)); // Array ( [l] => linux [n] => nginx [m] => mysql [p] => php ) ```` array_merge():并集 array_intersect():交集 array_diff():差集 ### 数组与字符串相互转换 explode() implode() ### 其他 array_rand():从数组中随机选出一个或多个元素并返回 shuffle():打算一个数组顺序 array_sum():…… range():…… ```php $lnmp = ['name' => 'gwx', 'age' =>29, 'sex' => '男', 'profession' => 'phper', 'wife' => '宋娜娜']; print_r(array_rand($lnmp, 2)); // 随机获取两个元素 shuffle($lnmp); print_r($lnmp); // 顺序已被打乱 echo array_sum([32,24,13,432]); // 501 print_r(range('a','f')); // Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f ) ```
函数
对象
文章目录