PHP数组
什么是数组
数组可以理解为有序的(键-值)对组成的数据值的集合; 如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值的容器; 根据索引值的不同数组分为:索引数组和关联数组;
$week = array("a"=> "星期一", "b"=>"星期二", "c"=> "星期三");//a是键,星期一是值
创建数组
与其它语言的数组实现方式不同,php不需要在创建数组时指定其大小;
因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;
索引可以是整型数字或者是字符串;
索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;
关联数组:索引为字符串的数组;
例:
$arr = array();
$fruits = array("orange", "apple", "banana");
$languages = array("en"=> "english", "cn"=> "china");
$arr[key] = value; 直接对数组变量赋值
如果方括号中没有指定索引,则取当前最大整数索引值,新的键名将是该值 + 1。
如果当前还没有整数索引,则键名将为0。如果指定的键名已经有值了,该值将被覆盖。
例:
$fruits[] = "orange";
$fruits[] = "apple";
$languages["en"] = "english";
$languages["cn"] = "china";
使用函数创建数组 range() 建立一个包含指定范围单元的数组
例:
$num = range(1, 100);
var_dump($num);
$letter = range('a','I');
var_dump($letter);
删除数组或数组元素
删除数组或数组元素 (注意:删除数组元素不会重建索引)
unset 释放给定的变量
例:
$fruits = array('apple', 'banana', 'orange');
print_r($fruits);
unset($fruits[1]);
print_r($fruits);
常用的数组函数
1.print_r() 打印数组
$today = getdate();
print_r($today);
2.count() 取得数组大小
count($week);
3.in_array() 检查数组中是否包含某个值
in_array('apple', $fruits);
var_dump(in_array('apple', $fruits));
数组排序
sort() 、 rsort() 对数组进行升序和降序
例:
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
print_r($fruits);
ksort()、krsort() 对数组按索引进行升序或降序, 并保持索引关系
例:
$fruits = array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple");
ksort($fruits);
print_r($fruits);
字符串与数组转换
explode explode() 函数把字符串打散为数组。
例:
$str = "1,2,3,4,5,6";
$arr = explode(',', $str);
print_r($arr);
implode implode() 函数将数组元素连接成字符
例:
$arr = array('a','b', 'c', 'd');
$str = implode('|', $arr );
echo $str;
array_rand
array_rand() 函数从数组中随机选出一个或多个元素,并返回。
第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成。
参数 | 描述 |
---|---|
array | 必需。规定输入的数组参数 |
number | 可选。默认是 1。规定返回多少个随机的元素 |
例:
$a = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
print_r(array_rand($a, 2));
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple'
);
print_r(array_rand($array, 1));
array_sum
array_sum() 函数返回数组中所有值的总和。
如果所有值多是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定)。
参数 | 描述 |
---|---|
array | 必需。规定输入的数组。 |
例:
$a=array(0=>"5",1=>"15",2=>"25");
echo array_sum($a);
array_key_first
获取指定数组的第一个键
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
array_key_last
获取一个数组的最后一个键值
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_last($array);
var_dump($firstKey);