PHP 常用函数 - 数组函数

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、数组指针函数
      • 1、current() | pos() 返回数组中的当前元素。
      • 2、next() 将数组中的内部指针向后移动一位。
      • 3、prev() 将数组的内部指针倒回一位。
      • 4、reset() 将数组的内部指针指向第一个元素。
      • 5、end() 将数组的内部指针指向最后一个元素。
      • 6、count() | sizeof() 返回数组中元素的数目。
    • 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
"; } $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
"; } $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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; } // 输出: 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 "
"; 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 "
"; 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 )

你可能感兴趣的:(PHP,php,开发语言)