PHP强化之03 - 数组 Array

作者: 四月不见 | 来源:发表于2018-05-30 16:08 被阅读1次

一、语法

1、简介

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。

可以用 array()语言结构来新建一个数组。自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。

$array = array(
    0 => "bar",
    1 => "foo"
);

// 自 PHP 5.4 起
$array = [
    0 => "bar",
    1 => "foo"
];

2、类型的转换

对于任意 integerfloatstringbooleanresource 类型,如果将一个值转换为数组,将得到一个仅有一个元素的数组,其下标为 0,该元素即为此标量的值。换句话说,(array) $scalarValuearray($scalarValue) 完全一样。

如果一个 object 类型转换为 array,则结果为一个数组,其单元为该对象的属性,键名将为成员变量名。

将 NULL 转换为 array 会得到一个空的数组。

3、数组运算符

例子 名称 结果
$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。

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

$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b;
echo "Union of \$a and \$b: \n";
var_dump($c);

执行结果:

Union of $a and $b: 
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}

数组中的单元如果具有相同的键名和值则比较时相等。

$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)

二、常用方法

1、对数组进行排序

函数名称 排序依据 数组索引键保持 排序的顺序
array_multisort() 键值关联的保持,数字类型的不保持 第一个数组或者由选项指定
asort() 由低到高
arsort() 由高到低
krsort() 由高到低
ksort() 由低到高
natcasesort() 自然排序,大小写不敏感
natsort() 自然排序
rsort() 由高到低
shuffle() 随机
sort() 由低到高
uasort() 由用户定义
uksort() 由用户定义
usort() 由用户定义

注意:以上的所有排序函数都是直接作用于数组本身, 而不是返回一个新的有序的数组。

2、数组与字符串间的转换

1)implode - 将一个一维数组的值转化为字符串

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

2)explode — 使用一个字符串分割另一个字符串

array explode ( string $delimiter , string $string [, int $limit ] )

3)preg_split — 通过一个正则表达式分隔字符串

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

相关方法:
split — 用正则表达式将字符串分割到数组中
str_split — 将字符串转换为数组

其它常用方法

range—根据范围创建数组,包含指定的元素!!
list — 把数组中的值赋给一组变量
is_array — 检测变量是否是数组
array_merge — 合并一个或多个数组

参考:

官方文档:

相关书籍:

  • 《PHP经典实例》 David Sklar & Adam Trachtenberg

--《最后更新时间:2018/5/30》--

相关文章

网友评论

    本文标题:PHP强化之03 - 数组 Array

    本文链接:https://www.haomeiwen.com/subject/piltsftx.html