PHP 数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。 由于 array 的值可以是其它 array 所以树形结构和多维 array 也是允许的。

它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。


定义数组 array()
可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

$arr = array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

// 可以用短数组语法 [] 替代 array() 
$arr = [
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
]

最后一个数组单元之后的逗号可以省略。key 可以是 integer 或者 string。value 可以是任意类型。

用方括号语法访问数组单元
数组单元可以通过 array[key] 语法来访问。

用方括号的语法新建/修改
可以通过明示地设定其中的值来修改现有的 array 。

这是通过在方括号内指定键名来给 array 赋值实现的。也可以省略键名,在这种情况下给变量名加上一对空的方括号([])。

$arr[key] = value;

$arr[] = value;

// key 可以是 int 或 string

// value 可以是任意类型的值

获取数组的长度 – count() 函数
count() 函数用于返回数组的长度(元素的数量):

遍历数值数组
遍历并打印数值数组中的所有值.

$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
 
for($x=0;$x<$arrlength;$x++)
{
    echo $cars[$x];
    echo "<br>";
}

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

删除键值

删除某键值对,对其调用 unset() 函数。

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // 这与 $arr[13] = 56 相同;
                // 在脚本的这一点上

$arr["x"] = 42; // 添加一个新元素
                // 键名使用 "x"
           
unset($arr[5]); // 从数组中删除元素
unset($arr);    // 删除整个数组
?>

数组解包
可以使用 [](自 PHP 7.1.0 起)或者 list() 语言结构解包数组。这些结构可用于将数组解包为不同的变量。

$source_array = ['foo', 'bar', 'baz'];

[$foo, $bar, $baz] = $source_array;

echo $foo;    // 打印 "foo"
echo $bar;    // 打印 "bar"
echo $baz;    // 打印 "baz"
?>

$source_array = [
    [1, 'John'],
    [2, 'Jane'],
];

foreach ($source_array as [$id, $name]) {
    // 这里是 $id 和 $name 的逻辑
}

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

如果将 object 类型转换为 array,则结果为一个数组,其单元为该对象的属性。键名将为成员变量名,不过有几点例外:整数属性不可访问; 私有变量前会加上类名作前缀;保护变量前会加上一个 ‘*’ 做前缀。这些前缀的前后都各有一个 NUL 字节。 未初始化的类型属性将会被丢弃。

class A {
    private $B;
    protected $C;
    public $D;
    function __construct()
    {
        $this->{1} = null;
    }
}

var_export((array) new A());

数组排序

sort() – 对数组进行升序排列
rsort() – 对数组进行降序排列
asort() – 根据关联数组的值,对数组进行升序排列
ksort() – 根据关联数组的键,对数组进行升序排列
arsort() – 根据关联数组的值,对数组进行降序排列
krsort() – 根据关联数组的键,对数组进行降序排列

收藏 0
评论
语言参考
PHP 字符串
2023-05-10 01:25:26
WordPress 主题开发未分类
WordPress 自定义模板路径
2023-05-10 01:56:00
生成中...
登录
注册
重置密码