惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Spread Privacy
Spread Privacy
T
Threatpost
L
LINUX DO - 热门话题
Google Online Security Blog
Google Online Security Blog
I
InfoQ
大猫的无限游戏
大猫的无限游戏
博客园_首页
爱范儿
爱范儿
有赞技术团队
有赞技术团队
V
Visual Studio Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Jina AI
Jina AI
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CERT Recently Published Vulnerability Notes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
K
Kaspersky official blog
L
LangChain Blog
G
GRAHAM CLULEY
B
Blog RSS Feed
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Help Net Security
Help Net Security
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
雷峰网
雷峰网
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Vercel News
Vercel News
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
T
Troy Hunt's Blog
W
WeLiveSecurity
T
Threat Research - Cisco Blogs

博客园 - 涂文瀚

常用的前端调试工具 用户中心 - 博客园 SQL中动态进行行转列 SQL SERVER 表分区实施步奏 [记录]SQL SERVER 跨库操作小记 PHP常见面试问题 在WIN下搭建PHP的测试、开发环境 [转]三款免费的PHP加速器:APC eAccelerator XCache比较 Xdebug如何选择PHP版本 PHP Cookbook读书笔记 – 第01章字符串 PHP Cookbook读书笔记 – 第03章日期和时间 PHP Cookbook读书笔记 – 第02章数字 PHP Cookbook读书笔记 – 第06章函数 PHP Cookbook读书笔记 – 第07章类和对象 PHP Cookbook读书笔记 – 第08章web基础 设计模式之观察者模式 PHP Cookbook读书笔记 – 第09章表单 PHP Cookbook读书笔记 – 第11章Session和持久化 PHP Cookbook读书笔记 – 第12章XML
PHP Cookbook读书笔记 – 第04章数组
涂文瀚 · 2011-12-15 · via 博客园 - 涂文瀚

数组是在web开发中经常会用到的部分,所以此章节的内容比较重要
unset() : 销毁一个变量(当然也包括数组)
array_pad() : 用值填补指定长度的空缺
array_splice() : 除了可以通过此函数移除数组中的元素,还可以指定另一个数组替换移除的部分
array_merge() : 合并多个数组
array_push() : 在数组末尾添加值
array_map() : 通过一个回调函数处理数组中的多个元素
is_array() : 检测一个变量是否是数组类型

array_shift() : 移除数组中的第一个元素
array_pop() : 返回数组中的最后一个元素并将其从原数组中移除
join() : 之前章节介绍过,将数组按其指定的分隔符合并为一个字符串
array_key_exists() : 查询数组中是否包含某键名
in_array() : 查询某个值是否在数组中(返回布尔值)

in_array 容易出错的地方

$array = array(1, '2', 'three');

in_array(0, $array);        // true!
in_array(0, $array, true);  // false
in_array(1, $array);        // true
in_array(1, $array, true);  // true
in_array(2, $array);        // true
in_array(2, $array, true);  // false

array_search() : 在数组中查询给定值(注意,存在是返回该值的键名

array_filter() : 和array_map() 类似,通过一个回调函数处理数组,但通过函数返回的true或false来决定是否保留此元素

max() : 查询数组中的最大值

min() : 查询数组中的最小值

arsort() : 对数组的键排序,并保持键与值的关系

array_reverse() : 数组反序

sort() : 对数组的值排序,原键名将改变

asort() : 对数组的值排序,并保持键与值的关系

natsort() : 用自然排序算法对数组的值排序,如果有1,0,11,2,21那么结果为0,1,2,11,21

usort() : 使用用户指定的排序函数对数组进行排序

array_multisort() : 对多数组进行排序

shuffle() : 数组元素乱序(很好用的一个函数)

array_unique() : 将值唯一化(即移除重复的元素)

array_walk() : 类似array_map(),也是通过一个回调函数对数组中的每个元素进行处理,区别是array_map()返回一个处理后的结果,array_walk()返回处理是否成功(true or false)。因为这个区别也就决定了array_map()不会改变原数组,array_walk()是对原数组进行处理。

array_walk_recursive() : 对数组中的每个成员递归地应用用户函数

在使用foreach语句时,PHP迭代的是相应数组的一个副本,而非数组本身。在使用each()函数和for语句时,PHP迭代的是原始数组。

遍历数组的四种方式:

foreach ($array as $value) {
    // Act on $value
}

foreach ($array as $key => $value) {
    // Act II
}

for ($key = 0, $size = count($array); $key < $size; $key++) {
   // Act III
}

reset($array) // reset internal pointer to beginning of array
while (list($key, $value) = each ($array)) {
    // Final Act
}

数组中集合的运用

//并集
$union = array_unique(array_merge($a, $b));
//交集
$intersection = array_intersect($a, $b);
//差集
$difference = array_diff($a, $b);
//对称差集
$difference = array_merge(array_diff($a, $b), array_diff($b, $a));