php 学习笔记 数组3

时间:2022-08-08 23:13:45

15、使用数组

  1)、并集(union)  array_merge(array1,array2,array3..) 函数把两个或多个数组合并为一个数组,后面覆盖前面

  2)、 交集(intersection)  array_intersect(array1,array2,array3...) 函数返回两个或多个数组的交集数组(区分大小写)

  3)、 差集(difference)  array_diff(array1,array2,array3...) 函数返回两个数组的差集数组,可用一个或任意多个数组与第一个数组进行比较,仅有值用于比较

  ps、合并两个数组,并删除相同的值

function arrayUnion($a, $b) {
$union = array_merge($a, $b);
$union = array_unique($union);
return $union
}

16、从数组中过滤元素

  array_filter(array,function)   函数用回调函数过滤数组中的元素

function myfunction($v)
{
if ($v==="Horse")
{
return true;
}
return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
print_r(array_filter($a,"myfunction"));

17、排序

  php 提供三种对数组排序的方法:按键排序,不改变键的按值排序,改变键的按值排序

 排序方法    升序      降序      自定义排序
 键排序改变键值  sort()  rsort()  usort()
 键排序不改变键值  asort()  arsort()  uasort()
 键排序  ksort()  krsort()  uksort()

  自定义排序:

function cmp($a, $b){
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 :1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, "cmp");
while (list($key, $val) = each($a)) {
echo "$key = $val<br>\n";
}

  按自然顺序排序

 $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
natsort($array2);
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)

  shuffle 数组的随机排序(不保留键名)

18、翻转数组

  array_reverse(array,preserve) 翻转数组中元素的内部顺序,创建新的数组并返回。如果第二个参数指定为 true,则元素的键名保持不变,否则键名将丢失。(索引数组)

  array_flip() 键值互换

19、查找元素值

  in_array(value,array[,type])  函数在数组中搜索给定的值

  如果给定的值 value 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。