数组是键值对集合,键只能是两类:整数、字符串;值可以是整数型、浮点型、字符型、布尔型、数组和对象组成。 [0]=>1 0是键名,1是键值。
数组的创建
数组的创建可以通过,函数array()
或者使用[ ]
进行数组的创建。
<?php
$array1 = array(1, 2, 3, 4);
$array2 = array("color" => "blue", "name" => "picture", "number" => "01");
$array3 = [1, 2, 3, 4];
$array4 = [1 => 2, 2 => 4, 5 => 6, 3 => 8, 10];
$array5=array(1=>2,2=>4,2=>6);
?>
数组的键名转换大写字母或小写字母
array_change_key_case(array,case)
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
print_r(array_change_key_case($age,CASE_UPPER));
?>
数组分割为新的数组块
$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,2));
//输出
//Array
//(
// [0] => Array
// (
// [0] => Volvo
// [1] => BMW
// )
// [1] => Array
// (
// [0] => Toyota
// [1] => Honda
// )
// [2] => Array
// (
// [0] => Mercedes
// [1] => Opel
// )
//)
?>
数组 输出某个单一列的值
array_column(array,column_key,index_key);
<?php
// 可能从数据库中返回数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
$last_names = array_column($a, 'last_name');
print_r($last_names);
//输出
//Array
//(
// [0] => Griffin
// [1] => Smith
// [2] => Doe
//)
?>
通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
array_combine()
函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。
键名数组和键值数组的元素个数必须相同!
<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
$c=array_combine($fname,$age);
print_r($c);
//Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
?>
统计数组中所有值出现的次数
array_count_values()
<?php
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
?>
//Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
比较两个数组的值,并返回差集
array_diff(array1,array2,array3...)
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
?>
//Array ( [d] => yellow )
比较两个数组的键名和键值,并返回差集
array_diff_assoc(array1,array2,array3...);
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
//Array ( [d] => yellow )
?>
把一个或多个数组合并为一个数组
array_merge(array1,array2,array3...)
<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
?>
//Array
//(
// [a] => red
// [b] => yellow
// [c] => blue
//)
检查某个数组中是否存在指定的键名
函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
array_key_exists(key,array)
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Volvo",$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
//Key exists!
?>
获取指定数组的第一个键值
array_key_first ( array $array )
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
echo $firstKey;
//a
?>
获取指定数组的最后一个键值
array_key_last()
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$lastKey = array_key_last($array);
echo $lastKey;
//c
?>
将指定数量的带有指定值的元素插入到数组中
array_pad(array,size,value)
<?php
$a=array("red","green");
print_r(array_pad($a,5,"blue"));
?>
//Array ( [0] => red [1] => green [2] => blue [3] => blue [4] => blue )
删除数组中的最后一个元素(出栈)
array_pop()
函数删除数组中的最后一个元素。
<?php
$a=array("red","green","blue");
array_pop($a);
print_r($a);
?>
//Array ( [0] => red [1] => green )
将一个或多个元素插入数组的末尾(入栈)
array_push()
函数向数组尾部插入一个或多个元素
<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>
//Array ( [0] => red [1] => green [2] => blue [3] => yellow )
从数组中随机选出一个或多个元素,返回键名
array_rand()
函数返回数组中的一个随机键名,或者如果指定函数返回键名不只一个,则返回一个包含随机键名的数组。
<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]."<br>";//red
echo $a[$random_keys[1]]."<br>";//blue
echo $a[$random_keys[2]];//brown
?>
通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction"));
//-Dog-Cat-Horse
?>
使用后面数组的值替换第一个数组的值。
array_replace()
函数使用后面数组的值替换第一个数组的值
<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_replace($a1,$a2));
//Array ( [0] => blue [1] => yellow )
?>
<?php
$a1=array("red","green","blue","yellow");
$a2=array(0=>"orange",3=>"burgundy");
print_r(array_replace($a1,$a2));
//Array ( [0] => orange [1] => green [2] => blue [3] => burgundy )
?>
将原数组中的元素顺序翻转,创建新的数组并返回
array_reverse()
函数返回翻转顺序的数组。
<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
//Array ( [c] => Toyota [b] => BMW [a] => Volvo )
?>
在数组中搜索给定的值,如果成功则返回相应的键名。
array_search()
函数在数组中搜索某个键值,并返回对应的键名。
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
//a
?>
删除数组中的第一个元素,并返回被删除元素的值。
array_shift()
函数用于删除数组中的第一个元素,并返回被删除的元素。
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a);//red
print_r ($a); //Array ( [b] => green [c] => blue )
?>
返回数组中的选定部分
array_slice()
<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));//Array ( [0] => blue [1] => yellow [2] => brown )
?>
把数组中的指定元素去掉并用其它值取代
array_splice()
函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
array_splice($a1,0,2,$a2);
print_r($a1);//Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
?>
数组中所有值的和
array_sum()
<?php
$a=array(5,15,25);
echo array_sum($a);//45
?>
对关联数组按照键值进行降序排序
arsort()
函数对关联数组按照键值进行降序排序
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
//Key=Joe, Value=43
//Key=Ben, Value=37
//Key=Peter, Value=35
?>
关联数组按照键值进升序排序。
asort()
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
//Key=Peter, Value=35
//Key=Ben, Value=37
//Key=Joe, Value=43
?>
检查数组中是否存在指定的值。
in_array()
<?php
$sites = array("Google", "Runoob", "Taobao", "Facebook");
if (in_array("Runoob", $sites))
{
echo "找到匹配项!";
}
else
{
echo "没有找到匹配项!";
}
//找到匹配项!
?>
创建一个包含指定范围的元素的数组。
range()
<?php
$number = range(0,5);
print_r ($number);//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
?>
返回数组中元素的数目。
count(array,mode)
array:数组,
mode:0 - 默认。不计算多维数组中的所有元素。
1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素)
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);//3
?>
sizeof()
函数返回数组中元素的数目,是 count() 函数的别名
<?php
$cars=array("Volvo","BMW","Toyota");
echo sizeof($cars);//3
?>
网友评论