PHP 常用函数
PHP 常用函数 - 字符串函数
PHP 常用函数 - 数组函数
PHP 常用函数 - 数学函数
PHP 常用函数 - 目录、文件函数
PHP 常用函数 - 其他常用函数
文章目录
- PHP 常用函数
- 数组函数
- 1、数组键值相关函数
- 1、list() 把数组中的值赋给一些数组变量。
- 2、range() 创建一个包含指定范围的元素的数组。
- 3、key() 从关联数组中取得键名。
- 4、in_array() 检查数组中是否存在指定的值。
- 5、each() 返回数组中当前的键/值对。
- 6、compact() 创建一个包含变量名和它们的值的数组。
- 7、extract() 从数组中将变量导入到当前的符号表。
- 8、array_key_exists() 检查指定的键名是否存在于数组中。
- 9、array_key_first() 获取指定数组的第一个键值。
- 10、array_key_last() 获取指定数组的最后一个键值。
- 11、array_keys() 返回数组中所有的键名。
- 12、array_rand() 从数组中随机选出一个或多个元素,返回键名。
- 13、array_values() 返回数组中所有的值。
- 14、array_count_values() 用于统计数组中所有值出现的次数。
- 2、数组更改函数
- 1、array_map() 将用户自定义函数作用到给定数组的每个值上,返回新的值。
- 2、array_pad() 将指定数量的带有指定值的元素插入到数组中。
- 3、array_pop() 删除数组中的最后一个元素(出栈)。
- 4、array_push() 将一个或多个元素插入数组的末尾(入栈)。
- 5、array_reduce() 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
- 6、array_replace() 使用后面数组的值替换第一个数组的值。
- 7、array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。
- 8、array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。
- 9、array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。
- 10、array_shift() 删除数组中的第一个元素,并返回被删除元素的值。
- 11、array_slice() 返回数组中的选定部分。
- 12、array_splice() 把数组中的指定元素去掉并用其它值取代。
- 13、array_unique() 删除数组中重复的值。
- 14、array_unshift() 在数组开头插入一个或多个元素。
- 15、array_walk() 对数组中的每个成员应用用户函数。
- 16、array_walk_recursive() 对数组中的每个成员递归地应用用户函数。
- 17、array_change_key_case() 返回其键均为大写或小写的数组。
- 28、array_chunk() 把一个数组分割为新的数组块。
- 29、array_fill() 用给定的键值填充数组。
- 20、array_fill_keys() 用给定的指定键名的键值填充数组。
- 21、array_filter() 用回调函数过滤数组中的元素。
- 22、array_flip() 反转/交换数组中的键名和对应关联的键值。
- 23、array_column() 返回输入数组中某个单一列的值。
- 24、array_combine() 通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
- 25、array_merge() 把一个或多个数组合并为一个数组。
- 26、array_merge_recursive() 递归地把一个或多个数组合并为一个数组。
- 27、array_product() 计算数组中所有值的乘积。
- 28、array_sum() 返回数组中所有值的和。
- 3、数组比较函数
- 1、array_diff() 比较数组,返回两个数组的差集(只比较键值)。
- 2、array_diff_assoc() 比较数组,返回两个数组的差集(比较键名和键值)。
- 3、array_diff_key() 比较数组,返回两个数组的差集(只比较键名)。
- 4、array_diff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。
- 5、array_diff_ukey() 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
- 6、array_intersect() 比较数组,返回两个数组的交集(只比较键值)。
- 7、array_intersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值)。
- 8、array_intersect_key() 比较数组,返回两个数组的交集(只比较键名)。
- 9、array_intersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。
- 10、array_intersect_ukey() 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。
- 11、array_udiff() 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。
- 12、array_udiff_assoc() 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
- 13、array_udiff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。
- 14、array_uintersect() 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。
- 15、array_uintersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
- 16、array_uintersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。
- 4、数组指针函数
- 5、数组排序函数
- 1、sort() 对数值数组进行升序排序。
- 2、rsort() 对数值数组进行降序排序。
- 3、ksort() 对关联数组按照键名升序排序。
- 4、krsort() 对关联数组按照键名降序排序。
- 5、asort() 对关联数组按照键值进行升序排序。
- 6、arsort() 对关联数组按照键值进行降序排序。
- 7、usort() 使用用户自定义的比较函数对数组进行排序
- 8、uksort() 使用用户自定义的比较函数对数组中的键名进行排序。
- 9、uasort() 使用用户自定义的比较函数对数组中的键值进行排序。
- 10、natsort() 用"自然排序"算法对数组排序。
- 11、natcasesort() 用"自然排序"算法对数组进行不区分大小写字母的排序。
- 12、shuffle() 把数组中的元素按随机顺序重新排列。
- 13、array_multisort() 对多个数组或多维数组进行排序。
提示:以下是本篇文章正文内容,下面案例可供参考
本篇文章参考菜鸟教程,仅供参考(常用函数就不写示例了,还有比较复杂的可参考菜鸟或官方手册)。
数组函数
1、数组键值相关函数
1、list() 把数组中的值赋给一些数组变量。
$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c."; // I have several animals, a Dog, a Cat and a Horse.
2、range() 创建一个包含指定范围的元素的数组。
$number = range(0,5);
print_r ($number); // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
3、key() 从关联数组中取得键名。
$people=array("Peter","Joe","Glenn","Cleveland");
echo key($people); // 0
4、in_array() 检查数组中是否存在指定的值。
$sites = array("Google", "Runoob", "Taobao", "Facebook");
var_dump(in_array("Runoob", $sites)); // bool(true)
5、each() 返回数组中当前的键/值对。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
print_r (each($people)); // Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 )
6、compact() 创建一个包含变量名和它们的值的数组。
$firstname = "Peter";
$lastname = "Griffin";
$age = "41";
$result = compact("firstname", "lastname", "age");
print_r($result); // Array ( [firstname] => Peter [lastname] => Griffin [age] => 41 )
7、extract() 从数组中将变量导入到当前的符号表。
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c"; // $a = Cat; $b = Dog; $c = Horse
8、array_key_exists() 检查指定的键名是否存在于数组中。
$a=array("Volvo"=>"XC90","BMW"=>"X5");
var_dump(array_key_exists("Volvo", $a)); // bool(true)
9、array_key_first() 获取指定数组的第一个键值。
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
echo $firstKey; // a
10、array_key_last() 获取指定数组的最后一个键值。
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$lastKey = array_key_last($array);
echo $lastKey; // c
11、array_keys() 返回数组中所有的键名。
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a)); // Array ( [0] => Volvo [1] => BMW [2] => Toyota )
12、array_rand() 从数组中随机选出一个或多个元素,返回键名。
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]; // red
echo $a[$random_keys[1]]; // blue
echo $a[$random_keys[2]]; // brown
13、array_values() 返回数组中所有的值。
$a=array("Name"=>"Peter","Age"=>"41","Country"=>"USA");
print_r(array_values($a)); // Array ( [0] => Peter [1] => 41 [2] => USA )
14、array_count_values() 用于统计数组中所有值出现的次数。
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a)); // Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
2、数组更改函数
1、array_map() 将用户自定义函数作用到给定数组的每个值上,返回新的值。
function myfunction($num) {
return($num*$num);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a)); // Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
2、array_pad() 将指定数量的带有指定值的元素插入到数组中。
$a=array("red","green");
print_r(array_pad($a,5,"blue")); // Array ( [0] => red [1] => green [2] => blue [3] => blue [4] => blue )
3、array_pop() 删除数组中的最后一个元素(出栈)。
$a=array("red","green","blue");
array_pop($a);
print_r($a); // Array ( [0] => red [1] => green )
4、array_push() 将一个或多个元素插入数组的末尾(入栈)。
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a); // Array ( [0] => red [1] => green [2] => blue [3] => yellow )
5、array_reduce() 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
function myfunction($v1,$v2) {
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction")); // -Dog-Cat-Horse
6、array_replace() 使用后面数组的值替换第一个数组的值。
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_replace($a1,$a2)); // Array ( [0] => blue [1] => yellow )
7、array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。
$a1=array("a"=>array("red"),"b"=>array("green","blue"),);
$a2=array("a"=>array("yellow"),"b"=>array("black"));
print_r(array_replace_recursive($a1,$a2)); // Array ( [a] => Array ( [0] => yellow ) [b] => Array ( [0] => black [1] => blue ) )
8、array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a)); // Array ( [c] => Toyota [b] => BMW [a] => Volvo )
9、array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a); // a
10、array_shift() 删除数组中的第一个元素,并返回被删除元素的值。
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a); // red
print_r ($a); // Array ( [b] => green [c] => blue )
11、array_slice() 返回数组中的选定部分。
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2)); // Array ( [0] => blue [1] => yellow [2] => brown )
12、array_splice() 把数组中的指定元素去掉并用其它值取代。
$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 )
13、array_unique() 删除数组中重复的值。
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a)); // Array ( [a] => red [b] => green )
14、array_unshift() 在数组开头插入一个或多个元素。
$a=array("a"=>"red","b"=>"green");
array_unshift($a,"blue");
print_r($a); // Array ( [0] => blue [a] => red [b] => green )
15、array_walk() 对数组中的每个成员应用用户函数。
function myfunction($value,$key) {
echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
// 输出:
The key a has the value red
The key b has the value green
The key c has the value blue
16、array_walk_recursive() 对数组中的每个成员递归地应用用户函数。
function myfunction($value,$key) {
echo "The key $key has the value $value<br>";
}
$a1=array("a"=>"red","b"=>"green");
$a2=array($a1,"1"=>"blue","2"=>"yellow");
array_walk_recursive($a2,"myfunction");
// 输出:
The key a has the value red
The key b has the value green
The key 1 has the value blue
The key 2 has the value yellow
17、array_change_key_case() 返回其键均为大写或小写的数组。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
print_r(array_change_key_case($age,CASE_UPPER)); // Array([PETER] => 35 [BEN] => 37 [JOE] => 43)
28、array_chunk() 把一个数组分割为新的数组块。
$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
)
)
29、array_fill() 用给定的键值填充数组。
$a1=array_fill(3,4,"blue");
$b1=array_fill(0,1,"red");
print_r($a1);
print_r($b1);
// 输出:
Array ( [3] => blue [4] => blue [5] => blue [6] => blue )
Array ( [0] => red )
20、array_fill_keys() 用给定的指定键名的键值填充数组。
$keys=array("a","b","c","d");
$a1=array_fill_keys($keys,"blue");
print_r($a1); // Array ( [a] => blue [b] => blue [c] => blue [d] => blue )
21、array_filter() 用回调函数过滤数组中的元素。
function test_odd($var) {
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd")); // Array ( [3] => 3 )
22、array_flip() 反转/交换数组中的键名和对应关联的键值。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result); // Array ( [red] => a [green] => b [blue] => c [yellow] => d )
23、array_column() 返回输入数组中某个单一列的值。
$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_names1 = array_column($a, 'last_name');
print_r($last_names1);
$last_names2 = array_column($a, 'last_name', 'id');
print_r($last_names2);
// 输出1:
Array
(
[0] => Griffin
[1] => Smith
[2] => Doe
)
// 输出2:
Array
(
[5698] => Griffin
[4767] => Smith
[3809] => Doe
)
24、array_combine() 通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
$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 )
25、array_merge() 把一个或多个数组合并为一个数组。
$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)
26、array_merge_recursive() 递归地把一个或多个数组合并为一个数组。
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2)); // Array ( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue )
27、array_product() 计算数组中所有值的乘积。
$a=array(5,5);
echo(array_product($a)); // 25
28、array_sum() 返回数组中所有值的和。
$a=array(5,15,25);
echo array_sum($a); // 45
3、数组比较函数
1、array_diff() 比较数组,返回两个数组的差集(只比较键值)。
$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 )
2、array_diff_assoc() 比较数组,返回两个数组的差集(比较键名和键值)。
$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 )
3、array_diff_key() 比较数组,返回两个数组的差集(只比较键名)。
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","c"=>"blue","d"=>"pink");
$result=array_diff_key($a1,$a2);
print_r($result); // Array ( [b] => green )
4、array_diff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result = array_diff_uassoc($a1,$a2,"myfunction");
print_r($result); // Array ( [a] => red [c] => blue )
5、array_diff_ukey() 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_diff_ukey($a1,$a2,"myfunction");
print_r($result); // Array ( [c] => blue )
6、array_intersect() 比较数组,返回两个数组的交集(只比较键值)。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2);
print_r($result); // Array ( [a] => red [b] => green [c] => blue )
7、array_intersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值)。
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_intersect_assoc($a1,$a2);
print_r($result); // Array ( [a] => red [b] => green [c] => blue )
8、array_intersect_key() 比较数组,返回两个数组的交集(只比较键名)。
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","c"=>"blue","d"=>"pink");
$result=array_intersect_key($a1,$a2);
print_r($result); // Array ( [a] => red [c] => blue )
9、array_intersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("d"=>"red","b"=>"green","e"=>"blue");
$result=array_intersect_uassoc($a1,$a2,"myfunction");
print_r($result); // Array ( [b] => green )
10、array_intersect_ukey() 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_intersect_ukey($a1,$a2,"myfunction");
print_r($result); // Array ( [a] => red [b] => green )
11、array_udiff() 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_udiff($a1,$a2,"myfunction");
print_r($result); // Array ( [a] => red [b] => green )
12、array_udiff_assoc() 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");
$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result); // Array ( [b] => green [c] => blue )
13、array_udiff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。
function myfunction_key($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
function myfunction_value($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");
$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result); // Array ( [c] => blue )
14、array_uintersect() 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");
$result=array_uintersect($a1,$a2,"myfunction");
print_r($result); // Array ( [c] => blue )
15、array_uintersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
function myfunction($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");
$result=array_uintersect_assoc($a1,$a2,"myfunction");
print_r($result); // Array ( [a] => red )
16、array_uintersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。
function myfunction_key($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
function myfunction_value($a,$b) {
if ($a===$b) {
return 0;
}
return ($a>$b)?1:-1;
}
$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");
$result=array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result); // Array ( [a] => red [b] => green )
4、数组指针函数
1、current() | pos() 返回数组中的当前元素。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) ; // Peter
2、next() 将数组中的内部指针向后移动一位。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people); // Peter
echo next($people); // Joe
3、prev() 将数组的内部指针倒回一位。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people); // Peter
echo next($people); // Joe
echo prev($people); // Peter
4、reset() 将数组的内部指针指向第一个元素。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people); // Peter
echo next($people) ;// Joe
echo reset($people); // Peter
5、end() 将数组的内部指针指向最后一个元素。
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) ; // Peter
echo end($people); // Cleveland
6、count() | sizeof() 返回数组中元素的数目。
$cars=array("Volvo","BMW","Toyota");
echo count($cars); // 3
5、数组排序函数
1、sort() 对数值数组进行升序排序。
$cars=array("Volvo","BMW","Toyota");
sort($cars);
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo $cars[$x];
echo "<br>";
}
// 输出:
BMW
Toyota
Volvo
2、rsort() 对数值数组进行降序排序。
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo $cars[$x];
echo "<br>";
}
// 输出:
Volvo
Toyota
BMW
3、ksort() 对关联数组按照键名升序排序。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
// 输出:
Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35
4、krsort() 对关联数组按照键名降序排序。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
// 输出:
Key=Peter, Value=35
Key=Joe, Value=43
Key=Ben, Value=37
5、asort() 对关联数组按照键值进行升序排序。
$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
6、arsort() 对关联数组按照键值进行降序排序。
$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
7、usort() 使用用户自定义的比较函数对数组进行排序
function my_sort($a,$b) {
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}
$a=array(4,2,8,6);
usort($a,"my_sort");
$arrlength=count($a);
for($x=0;$x<$arrlength;$x++) {
echo $a[$x];
echo "<br>";
}
// 输出:
2
4
6
8
8、uksort() 使用用户自定义的比较函数对数组中的键名进行排序。
function my_sort($a,$b) {
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}
$a=array(4,2,8,6);
uksort($a,"my_sort");
$arrlength=count($a);
for($x=0;$x<$arrlength;$x++) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
// 输出:
Key=a, Value=4
Key=b, Value=2
Key=c, Value=8
Key=d, Value=6
9、uasort() 使用用户自定义的比较函数对数组中的键值进行排序。
function my_sort($a,$b) {
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}
$arr=array("a"=>4,"b"=>2,"c"=>8,d=>"6");
uasort($arr,"my_sort");
foreach($arr as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
// 输出:
Key=b, Value=2
Key=a, Value=4
Key=d, Value=6
Key=c, Value=8
10、natsort() 用"自然排序"算法对数组排序。
$temp_files = array("temp15.txt","temp10.txt","temp1.txt","temp22.txt","temp2.txt");
sort($temp_files);
echo "Standard sorting: ";
print_r($temp_files);
echo "<br>";
natsort($temp_files);
echo "Natural order: ";
print_r($temp_files);
// 输出:
Standard sorting: Array ( [0] => temp1.txt [1] => temp10.txt [2] => temp15.txt [3] => temp2.txt [4] => temp22.txt )
Natural order: Array ( [0] => temp1.txt [3] => temp2.txt [1] => temp10.txt [2] => temp15.txt [4] => temp22.txt )
11、natcasesort() 用"自然排序"算法对数组进行不区分大小写字母的排序。
$temp_files = array("temp15.txt","Temp10.txt",
"temp1.txt","Temp22.txt","temp2.txt");
natsort($temp_files);
echo "Natural order: ";
print_r($temp_files);
echo "<br />";
natcasesort($temp_files);
echo "Natural order case insensitve: ";
print_r($temp_files);
//上面代码将输出:
Natural order:
Array
(
[0] => Temp10.txt
[1] => Temp22.txt
[2] => temp1.txt
[4] => temp2.txt
[3] => temp15.txt
)
Natural order case insensitve:
Array
(
[2] => temp1.txt
[4] => temp2.txt
[0] => Temp10.txt
[3] => temp15.txt
[1] => Temp22.txt
)
12、shuffle() 把数组中的元素按随机顺序重新排列。
$my_array = array("red","green","blue","yellow","purple");
shuffle($my_array);
print_r($my_array); // Array ( [0] => blue [1] => green [2] => yellow [3] => red [4] => purple )
13、array_multisort() 对多个数组或多维数组进行排序。
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a); // Array ( [0] => Bear [1] => Cat [2] => Dog [3] => Horse [4] => Zebra )