这3篇博文演示了,几乎所有常用的数组函数,在php开发中,大部分时间是操作字符串和数组,所以相关函数比较重要。
http://php.net/manual/zh/ref.array.php
冒泡排序
array_slice() 从数组中取出一段
array_splice() 把数组中的一部分去掉并用其它值取代
array_combine() 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
数组相加 与 数组合并
array_merge() 合并一个或多个数组
交集 与 差集
array_intersect() 计算数组的交集
array_diff() 计算数组的差集
入栈 与 出栈
array_push() 将一个或多个单元压入数组的末尾(入栈)
array_pop() 将数组最后一个单元弹出(出栈)
队列
array_unshift() 在数组开头插入一个或多个单元(入队)
array_shift() 将数组开头的单元移出数组
随机
array_rand() 从数组中随机取出一个或多个单元(随机)
打乱
shuffle() 将数组打乱
求和
array_sum() 计算数组中所有值的和(求和)
range() 建立一个包含指定范围单元的数组
array_fill() 用给定的值填充数组
<?php
/**
* 冒泡排序
*
* array_slice() 从数组中取出一段
* array_splice() 把数组中的一部分去掉并用其它值取代
* array_combine() 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
*
* 数组相加 与 数组合并
* array_merge() 合并一个或多个数组
*
* 交集 与 差集
* array_intersect() 计算数组的交集
* array_diff() 计算数组的差集
*
* 入栈 与 出栈
* array_push() 将一个或多个单元压入数组的末尾(入栈)
* array_pop() 将数组最后一个单元弹出(出栈)
*
* 队列
* array_unshift() 在数组开头插入一个或多个单元(入队)
* array_shift() 将数组开头的单元移出数组
*
* 随机
* array_rand() 从数组中随机取出一个或多个单元(随机)
*
* 打乱
* shuffle() 将数组打乱
*
* 求和
* array_sum() 计算数组中所有值的和(求和)
*
* range() 建立一个包含指定范围单元的数组
* array_fill() 用给定的值填充数组
*/
/**
* 冒泡排序
*/
echo '---------- 冒泡排序 从小到大 ----------<br>';
$arr = array(9,8,7,6,5,4,3,2,1,0);
$tmp;
for($i=0;$i<count($arr)-1;$i++ ){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j] > $arr[$j+1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
}
}
}
print_r($arr); // array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )
echo '<br>';
echo '---------- 冒泡排序 从大到小 ----------<br>';
$arr = array(0,1,2,3,4,5,6,7,8,9);
$tmp;
for($i=0;$i<count($arr)-1;$i++ ){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j+1] > $arr[$j]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
}
}
}
print_r($arr); // array ( [0] => 9 [1] => 8 [2] => 7 [3] => 6 [4] => 5 [5] => 4 [6] => 3 [7] => 2 [8] => 1 [9] => 0 )
echo '<br>';
/**
* array_slice() 从数组中取出一段
*/
echo '---------- array_slice() ----------<br>';
$arr2 = array("a", "b", "c", "d", "e");
$arr2n = array_slice($arr2, 2, 2); // 从下标2开始,取出2个元素
print_r($arr2n); // array ( [0] => c [1] => d )
echo '<br>';
$arr2n2 = array_slice($arr2, -2, 2); // 从(最大下标-2)开始,取出2个元素
print_r($arr2n2); // array ( [0] => d [1] => e )
echo '<br>';
/**
* array_splice() 把数组中的一部分去掉并用其它值取代
*/
echo '---------- array_splice() ----------<br>';
$arr2 = array("a", "b", "c", "d", "e");
array_splice($arr2, 2); // 从下标2开始,去掉后面所有元素
print_r($arr2); // array ( [0] => a [1] => b )
echo '<br>';
$arr2 = array("a", "b", "c", "d", "e");
array_splice($arr2, -3, 2); // 从(最大下标-3)开始,去掉2个元素
print_r($arr2); // array ( [0] => a [1] => b [2] => e )
echo '<br>';
$arr2 = array("a", "b", "c", "d", "e");
array_splice($arr2, -3, 2, "hello"); // 从(最大下标-3)开始,去掉2个元素。从去掉的下标开始添加新元素
print_r($arr2); // array ( [0] => a [1] => b [2] => hello [3] => e )
echo '<br>';
$arr2 = array("a", "b", "c", "d", "e");
array_splice($arr2, -3, 2, array("hello", "world", "android")); // 从(最大下标-3)开始,去掉2个元素。从去掉的下标开始添加新元素
print_r($arr2); // array ( [0] => a [1] => b [2] => hello [3] => world [4] => android [5] => e )
echo '<br>';
/**
* array_combine() 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
*/
echo '---------- array_combine() ----------<br>';
$arra = array("os", "webserver", "db", "language");
$arrb = array("linux", "apache", "mysql", "php");
$arrc = array_combine($arra,$arrb);
print_r($arrc); // array ( [os] => linux [webserver] => apache [db] => mysql [language] => php )
echo '<br>';
/**
* 数组相加
* 相加时,下标相同时,$arra的元素会覆盖$arrb的元素
*/
echo '---------- 数组相加 ----------<br>';
$arra = array("os", "webserver", "db", "language");
$arrb = array("linux", "apache", "mysql", "php");
$arrc = $arra + $arrb;
print_r($arrc); // array ( [0] => os [1] => webserver [2] => db [3] => language )
echo '<br>';
$arra = array("os", "webserver", "db", "language");
$arrb = array(9=>"linux", "apache", "mysql", "php");
$arrc = $arra + $arrb;
print_r($arrc); // array ( [0] => os [1] => webserver [2] => db [3] => language [9] => linux [10] => apache [11] => mysql [12] => php )
echo '<br>';
/**
* 数组合并
* array_merge() 合并一个或多个数组
* 如果下标是字符串,也就是说关联数组,下标相同时,$arrb的元素会覆盖$arra的元素
*/
echo '---------- array_merge() 数组合并 ----------<br>';
$arra = array("os", "webserver", "db", "language");
$arrb = array("linux", "apache", "mysql", "php");
$arrc = array_merge($arra, $arrb);
print_r($arrc); // array ( [0] => os [1] => webserver [2] => db [3] => language [4] => linux [5] => apache [6] => mysql [7] => php )
echo '<br>';
$arra = array("os", "two"=>"webserver", "db", "language");
$arrb = array("linux", "two"=>"apache", "mysql", "php");
$arrc = array_merge($arra, $arrb);
print_r($arrc); // array ( [0] => os [two] => apache [1] => db [2] => language [3] => linux [4] => mysql [5] => php )
echo '<br>';
/**
* array_intersect() 计算数组的交集
*/
echo '---------- array_intersect() 交集 ----------<br>';
$arra = array("os", "www", "db", "linux");
$arrb = array("linux", "apache", "mysql", "www");
$arrc = array_intersect($arra, $arrb);
print_r($arrc); // array ( [1] => www [3] => linux )
echo '<br>';
/**
* array_diff() 计算数组的差集
*/
echo '---------- array_diff() 差集 ----------<br>';
$arra = array("os", "www", "db", "linux");
$arrb = array("linux", "apache", "mysql", "www");
$arrc = array_diff($arra, $arrb);
print_r($arrc); // array ( [0] => os [2] => db )
echo '<br>';
/**
* array_push() 将一个或多个单元压入数组的末尾(入栈)
*/
echo '---------- array_push() 入栈 ----------<br>';
$arrzhan = array();
array_push($arrzhan,"one");
print_r($arrzhan); // array ( [0] => one )
echo '<br>';
array_push($arrzhan,"two");
array_push($arrzhan,"three");
print_r($arrzhan); // array ( [0] => one [1] => two [2] => three )
echo '<br>';
array_push($arrzhan,"four","five");
print_r($arrzhan); // array ( [0] => one [1] => two [2] => three [3] => four [4] => five )
echo '<br>';
/**
* array_pop() 将数组最后一个单元弹出(出栈)
*/
echo '---------- array_pop() 出栈 ----------<br>';
array_pop($arrzhan);
print_r($arrzhan); // array ( [0] => one [1] => two [2] => three [3] => four )
echo '<br>';
echo array_pop($arrzhan); // four
echo '<br>';
print_r($arrzhan); // array ( [0] => one [1] => two [2] => three )
echo '<br>';
/**
* array_unshift() 在数组开头插入一个或多个单元(入队)
*/
echo '---------- array_unshift() 入队 ----------<br>';
$arrduilie = array();
array_unshift($arrduilie, "one");
array_unshift($arrduilie, "two");
array_unshift($arrduilie, "three");
array_unshift($arrduilie, "four");
print_r($arrduilie);
echo '<br>'; // array ( [0] => four [1] => three [2] => two [3] => one )
/**
* array_shift() 将数组开头的单元移出数组(出队)
*/
echo '---------- array_shift() 出队 ----------<br>';
array_shift($arrduilie);
print_r($arrduilie);
echo '<br>'; // array ( [0] => three [1] => two [2] => one )
echo array_shift($arrduilie); // three
echo '<br>';
print_r($arrduilie); // array ( [0] => two [1] => one )
echo '<br>';
/**
* array_rand() 从数组中随机取出一个或多个单元(随机)
*/
echo '---------- array_rand() 随机 ----------<br>';
$arrz = array("a", "b", "c", "d", "e");
var_dump(array_rand($arrz)); // int(1)
echo '<br>';
var_dump(array_rand($arrz,3)); // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(3) }
echo '<br>';
$randvalue = array_rand($arrz);
$result = is_string($randvalue); // 判断$randvalue是不是字符串
var_dump($result); // bool(false)
echo '<br>';
/**
* shuffle() 将数组打乱
*/
echo '---------- shuffle() 打乱 ----------<br>';
$arrz = array("a", "b", "c", "d", "e");
shuffle($arrz);
print_r($arrz); //array ( [0] => c [1] => b [2] => d [3] => e [4] => a )
echo '<br>';
/**
* array_sum() 计算数组中所有值的和(求和)
*/
echo '---------- array_sum() 求和 ----------<br>';
$arrh = array(1,2,3,4,5,6,7,8,9);
echo array_sum($arrh); // 45
echo '<br>';
/**
* range() 建立一个包含指定范围单元的数组
*/
echo '---------- range() 求和 ----------<br>';
$arrr = range(0,10);
print_r($arrr); // array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 )
echo '<br>';
$arrr = range(0,10,3); // 第三个参数表示步进(跳步)
print_r($arrr); // array ( [0] => 0 [1] => 3 [2] => 6 [3] => 9 )
echo '<br>';
/**
* array_fill() 用给定的值填充数组
*/
echo '---------- array_fill() 求和 ----------<br>';
$arrf = array_fill(0,5,"iwanghang");
print_r($arrf); // array ( [0] => iwanghang [1] => iwanghang [2] => iwanghang [3] => iwanghang [4] => iwanghang )
echo '<br>';
以上就是android程序员学php开发(25)-数组操作相关函数(3)拆组排列篇-phpstorm的内容。