数组去重
$bb=array_unique($aa);
去重后键还是保留原来的,如果要重置键需要array_values处理
$arr=array_values($arr);
这样就会重新排列键
in_array($str,$arr);
判断$str是否在数组$arr中,返回值为TRUE或者FALSE
往数组中追加元素
array_push($arr,$str);
把$str追加到数组$arr中
数组重新随机排序
shuffle($arr);
分割数组
array_slice($arr,'开始位置','个数')
二维数组转一维数组
array_column($arr,'字段')
获取数组value的key的值
array_keys($arr,$value)
以相反的顺序返回数组
array_reverse
语法array_reverse(array,preserve)
第二个参数可选:默认false,规定是否保留原始数组的键名;true为保留
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
array_reverse($a)
//结果Array ( [c] => Toyota [b] => BMW [a] => Volvo )
array_pop — 将数组最后一个单元弹出(出栈)
$stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_pop($stack); print_r($stack); result: Array ( [0] => orange [1] => banana [2] => apple )
与之对应的array_push函数将一个或多个单元压入数组的末尾(入栈)
$stack = array("orange", "banana"); array_push($stack, "apple", "raspberry"); print_r($stack); result: Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )
array_shift() 将 array 的第一个单元移出
$stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack); print_r($stack); result: Array ( [0] => banana [1] => apple [2] => raspberry )
array_unshift — 在数组开头插入一个或多个单元
$queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry"); result: Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )
数组中删除元素
$arr = array('a','b','c','d'); unset($arr[1]); print_r($arr);
print_r($arr)之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d );
unset索引未改变
array_splice()移除元素后重新索引
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice()
$arr = array('a','b','c','d'); array_splice($arr,1,1); print_r($arr);
print_r($arr)之后,结果是Array ( [0] => a [1] => c [2] => d )
array_map — 将回调函数作用到给定数组的单元上
function cube($n) { return($n * $n * $n); } $a = array(1, 2, 3, 4, 5); $b = array_map("cube", $a); print_r($b); result: Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
array_count_values() 统计数组中所有值出现的次数
$arr = array(1,3,2,3,2,4); $sortArr = array_count_values($arr); var_dump($sortArr); result: array (size=4) 1 => int 1 3 => int 2 2 => int 2 4 => int 1
顺便可以用sort()函数进行排序,可以从高到底统计出现次数最多的字符,再用key($sortArr)获取次数最多的key,用reset($sortArr)获取次数最多的值
完整的例子:
$test = 'djasflkj2l3fjosadf,a.,gdflgk'; $testArr = str_split($test); //分割字符串 $sortArr = array_count_values($testArr);//统计数组中所有值出现的次数 arsort($sortArr); printf("最多的字符:%s,次数:%d",key($sortArr),reset($sortArr));
array_keys() 返回数组中所有的键名
array array_keys ( array $input [, mixed $search_value [, bool $strict ]] ) array_keys() 返回 input 数组中的数字或者字符串的键名。
举例
$array = array(0 => 100, "color" => "red"); print_r(array_keys($array)); $array = array("blue", "red", "green", "blue", "blue"); print_r(array_keys($array, "blue")); $array = array("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large")); print_r(array_keys($array));
结果
Array ( [0] => 0 [1] => color ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => color [1] => size )
array_change_key_case()函数将数组的所有的键都转换为大写字母或小写字母。
如果在运行该函数时两个或多个键相同,则最后的元素会覆盖其他元素
array_change_key_case(array,case);
参数 | 描述 |
---|---|
array | 必需。规定要使用的数组。 |
case |
可选。可能的值:
|
array_flip()
数组键值对调位置