PHP学习笔记三(数组API)
Posted 昵称正在加载中。。。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP学习笔记三(数组API)相关的知识,希望对你有一定的参考价值。
数组
分类
-
数值数组 : 带有数字 ID 键的数组
$word = array("I","LOVE","php"); echo $word[0].$word[1].$word[2];
-
关联数组: 带有指定的键的数组,每个键关联一个值
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); echo "Peter is " . $age['Peter'] . " years old.";
-
多维数组: 包含一个或多个数组的数组
$person = array ( array("Volvo",100,96), array("BMW",60,59), array("Toyota",110,100) );
-
遍历
// 数值数组 for($x = 0; $x < count($word); $x++) echo: $word[$x]."<br>"; // 关联数组 foreach($age as $item => $item_val) echo "key:" .$item. ",value:" .$item_val; // 多维数组 echo $person[0][0].": Ordered: ".$person[0][1].". Sold: ".$person[0][2]."<br>"; echo $person[1][0].": Ordered: ".$person[1][1].". Sold: ".$person[1][2]."<br>"; echo $person[2][0].": Ordered: ".$person[2][1].". Sold: ".$person[2][2]."<br>";
常用API
-
array_chunk()
: 把一个数组分割为新的数组块$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); print_r(array_chunk($age,2, true)); /* 2: 每个数组存放2个元素 true:保留原始数组中的键名, 反之:每个新数组块使用从零开始的索引(默认) */
-
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_names = array_column($a, 'last_name', 'id'); print_r($last_names); /* Array ( [5698] => Griffin [4767] => Smith [3809] => Doe ) */
-
array_count_values()
:用于统计数组中所有值出现的次数
$a = array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
/*
Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
*/
差集API
-
array_diff()
: 比较数组,返回两个数组的差集(只比较键值)$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"black","g"=>"purple"); $a3=array("a"=>"red","b"=>"black","h"=>"yellow"); $result=array_diff($a1,$a2,$a3); print_r($result); /* Array ( [b] => green [c] => blue ) */
-
array_udiff() 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)
-
array_diff_key()
: 比较数组,返回两个数组的差集(只比较键名)$a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("c"=>"yellow","d"=>"black","e"=>"brown"); $a3=array("f"=>"green","c"=>"purple","g"=>"red"); $result= array_diff_key($a1,$a2,$a3); print_r($result); /* Array ( [a] => red [b] => green ) */
-
array_diff_ukey()
: 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)function myfunction($a,$b) echo $a."和".$b."<br>"; 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_ukey($a1,$a2,"myfunction"); print_r($result); // Array ( [c] => blue )
-
array_diff_assoc()
: 比较数组,返回两个数组的差集(比较键名和键值)$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff_assoc($a1,$a2); print_r($result); /* Array ( [a] => red [b] => green [c] => blue [d] => yellow ) */
-
array_diff_uassoc()
: 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)function myfunction($a,$b) echo $a."和".$b."<br>"; 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 [b] => green )
-
array_udiff_assoc() 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)
-
array_udiff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)
交集API
-
array_intersect() 比较数组,返回两个数组的交集(只比较键值)
-
array_uintersect() 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)
-
array_intersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值)
-
array_intersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)
-
array_uintersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)
-
array_uintersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)
-
array_intersect_key() 比较数组,返回两个数组的交集(只比较键名)
-
array_intersect_ukey() 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)
结构API
-
aray_filter()
: 用回调函数过滤数组中的元素function test_odd($var) return($var >= 3); $a1=array(1,0,2,3,4); print_r(array_filter($a1,"test_odd")) // Array ( [3] => 3 [4] => 4 )
-
array_filp()
: 反转/交换数组中的键名和对应关联的键值$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 )
-
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 )
function myfunction($v1,$v2)
if ($v1===$v2)
return "same";
return "different";
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2));
-
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) $a=array(3=>"red",4=>"green"); print_r(array_merge($a));// Array ( [0] => red [1] => green )
-
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 ) */
填充API
-
array_fill()
: 用给定的键值填充数组$a1=array_fill(3,4,"blue"); // 3:开始位 4:填充多少位 “blue”:值
-
array_fill_keys() 用给定的指定键名的键值填充数组
取值API
-
array_key_exists()
: 检查指定的键名是否存在于数组中$a=array("Volvo"=>"XC90","BMW"=>"X5"); array_key_exists("Volvo",$a) // 1
-
in_array()
: 检查数组中是否存在指定的值
$a=array("Volvo"=>"XC90","BMW"=>"X5");
in_array("XC90",$a) // 1
array_key_first()
: 获取指定数组的第一个键值
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
array_key_last()
: 获取指定数组的最后一个键值
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$lastKey = array_key_last($array);
array_keys()
: 返回数组中所有的键名
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a));// Array ( [0] => Volvo [1] => BMW [2] => Toyota )
-
array_values()
: 返回数组中所有的值$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander"); print_r(array_values($a));// Array ( [0] => Volvo [1] => BMW [2] => Toyota )
-
list()
: 把数组中的值赋给一些数组变量$my_array = array("Dog","Cat","Horse"); list($a, $b, $c) = $my_array;
-
array_unique()
: 删除数组中重复的值$a=array("a"=>"red","b"=>"green","c"=>"red"); print_r(array_unique($a));
-
array_rand()
: 从数组中随机选出一个或多个元素,返回键名$a=array("red","green","blue","yellow","brown"); $random_keys=array_rand($a,3); echo $a[$random_keys[0]]."<br>"; echo $a[$random_keys[1]]."<br>"; echo $a[$random_keys[2]];
-
array_reduce()
: 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回function myfunction($v1,$v2) return $v1+$v2; $a=array(10,15,20); print_r(array_reduce($a,"myfunction",5)) // 50
-
shuffle() 把数组中的元素按随机顺序重新排列
-
array_unshift() 在数组开头插入一个或多个元素
-
array_pop() 删除数组中的最后一个元素(出栈)
-
array_push() 将一个或多个元素插入数组的末尾(入栈)
-
array_shift() 删除数组中的第一个元素,并返回被删除元素的值
-
array_slice() 返回数组中的选定部分
-
array_splice() 把数组中的指定元素去掉并用其它值取代
-
array_sum() 返回数组中所有值的和
-
array_product() 计算数组中所有值的乘积
-
array_replace() 使用后面数组的值替换第一个数组的值
-
array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值
-
array_reverse()<
以上是关于PHP学习笔记三(数组API)的主要内容,如果未能解决你的问题,请参考以下文章