您的位置 首页 php

Thinkphp数组array常用函数

68af02d37eda491fba07ee08b44a3133

b5b22c9b6b154beea383e83dc5fe1d54


这篇文章主要介绍了php常用数组array函数,结合实例形式总结分析了php常用的数组操作函数,包括数组的赋值、拆分、合并、计算、添加、删除、查询、判断、排序等,需要的朋友可以参考下

b59c7672fd9c49d4aca52798d522f4b8

array_combine

功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值

 <?php  
$a = array ( "one" , "two" , "three" );
$b = array ( "一" , "二" , "三" );
$c = array_combine($a,$b);
print_r($c);
/**结果
*Array ( [one] => 一 [two] => 二 [three] => 三 )
*/

array_chunk

功能:拆分数组成多个数组

  <?php  
$input_array = array ( "a" => "apple" , "b" => "blue" , "c" , "d" , "e" );
echo "<pre>" ;
print_r(array_chunk($input_array, 2 ));
print_r(array_chunk($input_array, 2 ,True));
echo "</pre>" ;
/**结果
Array
(
[0] => Array
(
[0] => apple
[1] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[a] => apple
[b] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[2] => e
)
)
*/

array_count_values

功能:统计数组中值出现的次数

  <?php  
$input_array = array ( "a" => "apple" , "b" => "blue" , "c" , "d" , "e" );
echo "<pre>" ;
print_r(array_count_values($input_array));
echo "</pre>" ;
/**结果
Array
(
[apple] => 1
[blue] => 1
[c] => 1
[d] => 1
[e] => 1
)
*/

array_diff

功能:第一个数组中去掉第二个数组中有的数据,返回剩下的内容作为结果

  <?php  
$array1 = array ( "a" => "apple" , "b" => "blue" , "c" , "d" , "e" );
$array2 = array ( "apple" , "c" , "d" , "f" );
$result = array_diff($array1, $array2);
$result2 = array_diff($array2, $array1);
echo "<pre>" ;
print_r($result); //数组1中去掉数组2中剩下的
print_r($result2); //数组2中去掉数组1中剩下的
echo "</pre>" ;
/**结果
Array
(
[b] => blue
[2] => e
)
Array
(
[3] => f
)
*/

array_map

功能:将回调函数执行到数组中

  <?php  
//定义回调函数
function cube($n){
return ($n * $n * $n);
}
$a = array ( 1 , 2 , 3 , 4 , 5 );
$b = array_map( "cube" ,$a);
echo "<pre>" ;
print_r($b);
echo "</pre>" ;
/**结果
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
*/

array_merge

功能:合并一个或多个数组

说明:如果后面有键名相同的会覆盖掉前面的内容,键名为数字的会添加到后面

  <?php  
$array1 = array ( "color" => "red" , 2 , 4 );
$array2 = array ( "a" , "b" , "color" => "green" , "shape" => "trapezoid" , 4 );
$result1 = array_merge($array1,$array2);
$result2 = array_merge_recursive($array1,$array2);
echo "<pre>" ;
print_r($result1);
print_r($result2);
echo "</pre>" ;
/**结果
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
Array
(
[color] => Array
(
[0] => red
[1] => green
)
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
*/

array_pop

功能:剔除数组最后一个元素,返回被剔除的元素内容

  <?php  
$stack = array ( "orange" , "banana" , "apple" , "1" );
$last = array_pop($stack);
echo "<pre>" ;
print_r($stack);
print_r($last);
echo "</pre>" ;
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
)
1
*/

array_push

功能:将一个多个单元压入数组末尾,返回之后的数组个数

  <?php  
$stack = array ( "orange" , "banana" );
$count = array_push($stack, "apple" , "red" , "blue" );
echo "<pre>" ;
print_r($stack);
print_r($count);
echo "</pre>" ;
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => red
[4] => blue
)
5
*/

array_rand

功能:获取随机的键名

  <?php  
$input = array ( "orange" , "banana" , "apple" , "red" , "blue" );
$rand = array_rand($input, 2 );;
print_r($rand);
$rand = array_rand($input, 3 );
print_r($rand);
/**结果
Array
(
[0] => 1
[1] => 4
)
Array
(
[0] => 0
[1] => 1
[2] => 3
)
*/

array_search

功能:查询数组中的内容,返回键值,如果有多个匹配,返回第一个匹配的内容

  <?php  
$array = array ( "blue" => "b" , "red" => "r" , "green" , "r" );
$key = array_search( 'b' , $array);
echo $key;
echo "<br>" ;
$key = array_search( 'r' , $array);
echo $key;
echo "<br>" ;
/**结果
blue
red
*/

array_shift

功能:移除开头的元素,与array_pop相反

  <?php  
$fruit = array ( "milk" , "orange" , "banana" , "apple" );
$top = array_shift($fruit);
print_r($top);
echo "<br>" ;
print_r($fruit);
/**结果
milk
Array ( [0] => orange [1] => banana [2] => apple )
*/

array_unique

功能:去除数组重复的元素,保留第一个出现的,包括键名和值

 <?php  
$input = array ( "a" => "green" , "red" , "b" => "green" , "blue" , "c" => "red" );
$result = array_unique($input);
print_r($result);
echo "<br>" ;
print_r($input);
/**结果
Array ( [a] => green [0] => red [1] => blue )
Array ( [a] => green [0] => red [b] => green [1] => blue [c] => red )
*/

array_slice

功能:从数组中取出部分元素

  <?php  
$input = array ( "a" , "b" , "c" , "d" , "e" );
$output = array_slice($input, 2 ); //第二个参数没有时,表示取到最后一个元素
print_r($output);
echo "<br>" ;
$output = array_slice($input, - 2 , 1 ); //第二个参数是正数时,表示个数;倒数第一个是-1,倒数第二个是-2
print_r($output);
echo "<br>" ;
$output = array_slice($input, 0 , 3 );
print_r($output);
echo "<br>" ;
$output = array_slice($input, 2 , - 1 ); //第二个参数是负数时,表示位置,取到哪一位,不包括本身
print_r($output);
echo "<br>" ;
$output = array_slice($input, 2 , - 1 , true ); //第三个参数为true时,保留原有的键值
print_r($output);
echo "<br>" ;
/**结果
Array ( [0] => c [1] => d [2] => e )
Array ( [0] => d )
Array ( [0] => a [1] => b [2] => c )
Array ( [0] => c [1] => d )
Array ( [2] => c [3] => d )
*/

count

功能:返回数组元素个数,元素为数组的算一个

  <?php  
$input = array ( "a" , "b" , "c" , array ( "d" , "e" ));
$count = count($input);
echo $count;
echo "<br>" ;
$input = array ( "a" , "b" , "c" , "d" , "e" );
$count = count($input);
echo $count;
/**结果
4
5
*/

current

功能:获取当前的指针指向元素

  <?php  
$array = array ( "foot" , "bike" , "car" , "plane" );
$result = current($array);
echo $result. "<br>" ;
next($array); //使指针指向下一个元素
$result = current($array);
echo $result. "<br>" ;
prev($array); //使指针指向前一个元素
$result = current($array);
echo $result. "<br>" ;
end($array); //使指针指向最后一个元素
$result = current($array);
echo $result. "<br>" ;
/**结果
foot
bike
foot
plane
*/

in_array

功能:检验某值是否存在数组中,有返回True,没有返回False

 <?php  
$os_list = array ( " mac " , "NT" , "Irix" , "Linux" );
if (in_array( "Irix" ,$os_list)){
echo "当前操作系统列表中存在Irix" ;
} else {

echo "当前操作系统列表中不存在Irix" ;
}
echo "<br>" ;
if (in_array( "mac" ,$os_list)){
echo "当前操作系统列表中存在mac" ;
} else {
echo "当前操作系统列表中不存在mac" ;
}
echo "<br>" ;
/**结果
当前操作系统列表中存在Irix
当前操作系统列表中不存在mac
*/

list

功能:将数组中的信息赋值给多个变量

 

<?php
$info = array ( "red" , "blue" , "green" );
list ($flag,$sky,$grassland) = $info;
echo "$flag,$sky,$grassland" ;
echo "<br>" ;
list ($flag,,$grassland) = $info;
echo "$flag,$grassland" ;
echo "<br>" ;
list (,,$grassland) = $info;
echo "$grassland" ;
echo "<br>" ;
/**结果
red,blue,green
red,green
green
*/

shuffle

功能:打乱数组

  <?php  
$numbers = range( 1 , 5 ); //生成一个随机数组
print_r($numbers);
echo "<br/>" ;
shuffle($numbers); //打乱数组
print_r($numbers);
/**结果
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => 4 [1] => 1 [2] => 5 [3] => 2 [4] => 3 )
*/

array_keys

功能:获取数组的键名,第二个参数可以指定获取某个元素

 <?php  
$array = array ( 0 => 100 , "color" => "red" );
print_r(array_keys($array));
echo "<br>" ;
$array = array ( "blue" , "red" , "green" , "blue" , "blue" );
print_r(array_keys($array, "blue" ));
echo "<br>" ;
$array = array ( "color" => array ( "blue" , "red" , "green" ), "size" => array ( "small" , "medium" , "large" ));
print_r(array_keys($array));
echo "<br>" ;
/**结果
Array ( [0] => 0 [1] => color )
Array ( [0] => 0 [1] => 3 [2] => 4 )
Array ( [0] => color [1] => size )
*/

array_reverse

功能:获取数组的反向

  <?php  
$input = array ( "php" , 3.0 , array ( "green" , "red" ));
$result = array_reverse($input); //打乱键名
$result_keyed = array_reverse($input, TRUE ); //保留键名
print_r($result);
print_r($result_keyed);
/**结果
Array
(
[0] => Array
(
[0] => green
[1] => red
)
[1] => 3
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)
[1] => 3
[0] => php
)
*/

arsort

功能:逆向排序,索引不变

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
arsort($fruits); //按照字符逆向排序或数字
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
b = orange
a = lemon
c = banana
d = apple
*/

asort

功能:进行正向排序

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
arsort($fruits); //按照字符逆向排序或数字
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
echo "<p>" ;
asort($fruits); //按照字符正向排序或数字
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
b = orange
a = lemon
c = banana
d = apple
d = apple
c = banana
a = lemon
b = orange
*/

krsort

功能:按照键名进行逆向排序

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
krsort($fruits); //按照键名逆向排序或数字
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
d = apple
c = banana
b = orange
a = lemon
*/

ksort

功能:按照键名进行正向排序

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
ksort($fruits); //按照键名正向排序或数字
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
a = lemon
b = orange
c = banana
d = apple
*/

rsort

功能:按照值进行逆向排序,键名改变

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
rsort($fruits); //按照值进行逆向排序或数字,键名改变
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
0 = orange
1 = lemon
2 = banana
3 = apple
*/

sort

功能:按照值进行正向排序,键名改变

  <?php  
$fruits = array (
"a" => "lemon" ,
"b" => "orange" ,
"c" => "banana" ,
"d" => "apple" ,
);
sort($fruits); //按照值进行逆向排序或数字,键名改变
foreach ($fruits as $key => $val){
echo "$key = $val<br>" ;
}
/**结果
0 = apple
1 = banana
2 = lemon
3 = orange
*/

013ce6ef286049e088b29177f082e688

文章来源:智云一二三科技

文章标题:Thinkphp数组array常用函数

文章地址:https://www.zhihuclub.com/31262.shtml

关于作者: 智云科技

热门文章

网站地图