PHP数组简介

一、创建数组

在PHP中可以使用array( [ index=>values ] )这个语言结构来声明一个数组。数组的元素可以是任意类型,也包括数组,因此多维数组也是支持的。

<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>

说明:语法"index=>values",用逗号分隔开,定义了索引和值,索引可以是字符串或数字。如果省略索引,则会自动产生从0开始的整数索引。而且,如果定义了两个一样的索引,则后一个会覆盖前一个。

 

二、常见数组函数

1.array_pad( ) - 以指定长度将一个值填充进数组,语法为:

array array_pad ( array $array , int $size , $value )

函数简介:array是需要被填充的原始数组,size是填充后新数组的长度,value是将被填充的值。这个函数会返回一个填充后的数组,数组的长度为size,是在原数组的基础上填充若干个value得来的。

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// not padded
?>

说明:size的值很重要,如果size为正填充将在数组的右侧发生,如果size为负填充将在数组的左侧发生,如果size的绝对值小于或等于原数组的长度则不做任何填充。另外,函数只是返回一个副本数组,原始数组并不会被改变。

2.list() - 把数组中的值赋给一组变量,可以在单次操作中就为一组变量赋值,例如

<?php

$info = array('coffee', 'brown', 'caffeine');

// 列出所有变量
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.
";

// 列出他们的其中一个
list($drink, , $power) = $info;
echo "$drink has $power.
";

// 或者让我们跳到仅第三个
list( , , $power) = $info;
echo "I need $power!
";

// list() 不能对字符串起作用
list($bar) = "abcde";
var_dump($bar); // NULL
?>

3.count() - 计算数组中的单元数目。语法:

int count ( $array [, int $mode = COUNT_NORMAL ] )

函数简介:array是要计算的数组; mode是可选参数,若设为COUNT_RECURSIVE(或),count()将递归地对数组计数。对计算多维数组的所有单元尤其有用。

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// recursive count
echo count($food, COUNT_RECURSIVE); // output 8

// normal count
echo count($food); // output 2

?>

4.range() - 建立一个包含指定范围单元的数组,语法:

array range ( $start ,$end [, number $step = 1 ] )

函数简介:start是序列的第一个值,end则标识序列的结束,step设置生成序列的步长,应设为正数,默认为1.

<?php
//  step 参数
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// 字符序列的使用
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
    echo $letter;
}
?>

5.foreach() - 该语法结构提供了遍历数组的简单方式,有两种语法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value) statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步。

第二种格式做同样的事,除此之外,当前单元的键名也会在每次循环中被赋给变量 $key。

可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>

注意:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留,建议使用unset()将其销毁。

原文地址:https://www.cnblogs.com/jxc321/p/9125065.html