//1 将key值大小替换
$arr = array('a' => 1, 'b' => 2, 'C' =>3, 'D' => 4); $lower = array_change_key_case($arr, CASE_LOWER); $upper = array_change_key_case($arr, CASE_UPPER); //var_dump($lower); //var_dump($upper);
//2 将数组分割为$size个数组,hasKay为是否保留原来的key值
$arr2 = array('name' => 'lixueyao', 'age' => 24, 'sex' => 'f'); $size = 2; $hasKey = true; $chunk = array_chunk($arr2, $size, $hasKey); //var_dump($chunk);
//3 可以将多维数组中指定的key生成一个新数组,第3个参数,可以作为新数组的key值
$arr3s = array( array('name' => 'lixueyao', 'age' => 24, 'sex' => 'f'), array('name' => 'zhangsan', 'age' => 25, 'sex' => 'm'), array('name' => 'lisi', 'age' => 26, 'sex' => 'f') ); $column = array_column($arr3s, 'age', 'name'); //print_r($column);
//4 合并俩个数组,形成的新数组中一个作为value,一个作为key
$arrCombineOne = array('one', 'two', 'three'); $arrCombineTwo = array('1', '2', '3'); $combine = array_combine($arrCombineTwo, $arrCombineOne); //print_r($combine);
//5 返回数组中value 出现的次数
$arrValue = array('c', 'd', 'a', 'c', 'v'); $arrcnt = array_count_values($arrValue); //print_r($arrcnt);
//6 比较数组value 的差集 , one和two参数比较,在two数组中的不存在的就是差集 (用one和two去对比, one是被比较的数组)
//如果是多个数组进行比较则是3个数组的差集。(可以比较多个数组)
$arrDiffOne = array('a' => 'red', 'b' => 'blue' , 'c' => 'black', 'd' => 'purple'); $arrDiffTwo = array('a' => 'red', 'b' => 'blue', 'n' => 'black',); $arrDiffThree = array('a' => 'red', 'f' => 'hello', 'c' => 'black'); $arrDiff = array_diff($arrDiffOne, $arrDiffTwo, $arrDiffThree); //print_r($arrDiff)
;
//7 比较数组的key 和 value(都相同),one是被比较的数组
//如果是3个数组去比较的话,可以先比较俩个数组,然后再用其他数组去比较前俩个数组的差集
$arrAssoc = array_diff_assoc($arrDiffOne, $arrDiffTwo, $arrDiffThree); //print_r($arrAssoc);
//8 比较数组的key值,原理同上
$a4 = array('d' =>'name'); $arrKey = array_diff_key($arrDiffOne, $arrDiffTwo, $arrDiffThree, $a4); //print_r($arrKey);
//9 比较数组,但是会比较key (自定义的函数不是很明白, one是被比较的
$uassocOne = array('name' => 'zsy', 'age'=>24, 'say' => 'hello'); $uassocTwo = array('name' => 'lixueyao', 'age' => 24); function myfunction($a , $b) { $res = null; if($a === $b) { $res = 0; } $res = ($a<$b) ? 1:-1; return $res; } $arrUassoc = array_diff_uassoc($uassocOne, $uassocTwo, 'myfunction'); print_r($arrUassoc);
//10 比较key
function myDiffKey($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $result=array_diff_ukey($uassocOne,$uassocTwo,"myDiffKey"); print_r($result);