码迷,mamicode.com
首页 > 编程语言 > 详细

php 数组常用函数

时间:2017-03-16 23:58:41      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:入栈   合并   res   eve   zhang   logs   影响   function   连续   

PHP数组中常用的函数:

 1.//array_values — 返回数组中所有的值 

 $array = array("name"=>"zhangsan","age"=>"10","sex"=>"man");

  $tem= array_values($array);

  echo "<pre>";
  print_r($tem);
  echo "</pre>";
输出结果如下:

  技术分享

2.array_keys — 返回数组中部分的或所有的键名  
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man");

  $tem= array_keys($array);

  echo "<pre>";
  print_r($tem);
  echo "</pre>";

输出结果如下:

  技术分享


3.in_array — 检查数组中是否存在某个值,返回布尔类型(bool)的值  
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man");

  $tem= in_array("10",$array,false);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
其中第三个参数默认false,如果存在则返回1,不存在,则没有返回值。如若设置成true,则会检查类型是否相同,相当于“===” 的效果。

4.array_flip — 交换数组中的键和值
$array = array("name"=>"zhangsan","age"=>"10","sex"=>"man");
  $tem= array_flip($array);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
输出结果如下:
  技术分享

这里需要注意$array 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会翻转。

如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。

5.
array_reverse — 返回一个单元顺序相反的数组,例如
$array = array("zhangsan",5,"10","sex"=>"man");
   $tem= array_reverse($array);
   echo "<pre>";
   print_r($tem);
   echo "</pre>";
如图所示:
  技术分享
注意,如果这里的第二个参数,设置为true,则会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留。例:
 $array = array("zhangsan",5,"10","sex"=>"man");
  $tem= array_reverse($array,true);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
这里的第二个参数,设置为true,如下图所示:

  技术分享

 6.count — 计算数组中的单元数目或对象中的属性个数,例如:

$array = array("zhangsan",5,"10","sex"=>"man");
  $tem= count($array);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
这里的$tem 就是数组的个数,个数为4;

7.array_count_values — 统计数组中所有的值出现的次数,例如:
 $array = array("zhangsan",5,"10","sex"=>"man",5);
  $tem= count($array);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
如下图所示:
  

技术分享


8.array_unique — 移除数组中重复的值,接受 array 作为输入并返回没有重复值的新数组。 例如:
  $array = array("zhangsan",5,"10","sex"=>"man",5);
  $tem=array_unique ($array);
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
如下图所示:

  技术分享

 9.array_filter — 用回调函数过滤数组中的单元  ,例如:过滤下面数组中小于3的数组。

  $array = array(1,2,3,4,5);
   //回调函数如下
  function filter($val){
      if($val>3){
          return $val;
      }
  }
  //返回过滤后的数组。 
  $tem = array_filter($array,"filter");
  echo "<pre>";
  print_r($tem);
  echo "</pre>";
结果如下图所示:

  技术分享

10.array_walk — 使用用户自定义函数对数组中的每个元素做回调处理。成功时返回 TRUE, 或者在失败时返回 FALSE

$array = array(1,2,3,4,5);
//回调函数如下
function walk($val){
    $val=$val*$val;
  //没有返回值 } //使用自定义函数,让每个元素做回调处理 $tem = array_walk($array,"walk"); echo "
<pre>"; print_r($tem); echo "</pre>";

11.array_map — 为数组的每个元素应用回调函数     

$array = array(1,2,3,4,5);
//回调函数如下
function map($val){
    $val=$val*$val;
    return $val;//有返回值
}

//使用自定义函数,让每个元素做回调处理并组成一个新的数组
$tem = array_map("map",$array);
echo "<pre>";
print_r($tem);
echo "</pre>";

原来数组还存在,返回一个新的数组,返回结果如下图所示:

技术分享

   这里array_map与array_walk 的区别,array_walk 是使数组里的每个元素做回调处理,不返回值;array_map是使数组里的每个元素做回调处理,并返回一个新的数组。

12.sort — 对数组进行升序排序。sort() 例子

$array = array(10,2,13,4,50);
//对数组进行升序排序
$tem = sort($array);
echo "<pre>";
print_r($tem);//函数成功返回值
echo "<br>";
//遍历出排序后的数组
foreach ($array as $key => $val) {
echo "array [" . $key . "] = " . $val . "\n";
}

echo "</pre>";
成功时返回 TRUE, 或者在失败时返回 FALSE。 如下图所示:
技术分享
13.
rsort — 对数组逆向排序(降序) rsort() 例子
$array = array(10,2,13,4,50);
//对数组进行降序排序
$tem = rsort($array);
echo "<pre>";
print_r($tem);//函数成功返回值
echo "<br>";
//遍历出排序后的数组
foreach ($array as $key => $val) {
    echo "array [" . $key . "] = " . $val . "\n"; 
}
echo "
</pre>";
成功时返回 TRUE, 或者在失败时返回 FALSE。 如下图所示
技术分享

其他排序方式如下图所示:
技术分享

14.
array_slice — 从数组中取出一段 。array_slice 例子:
$array = array(10,2,13,4,50,15);
//截取索引为1开始截取长度为5的数组元素 $tem = array_slice($array,1,5); echo "
<pre>"; print_r($tem); echo "</pre>";

如下图所示:

技术分享

15.array_splice — 把数组中的一部分去掉并用其它值取代 。    array_splice 例子

$array = array(1,2,3,4,5);
//
截取索引为2开始去掉1个长度的数组元素并用元素6来降3取代,注意array_splice的参数不能超过四个,如要添加更多元素,需要建立一个新的数组,将需要添加的元素放进新数组,
//再将新数组放入array_splice第四个参数即可
 array_splice($array,2,1,6);
echo "
<pre>";
print_r($array);
echo "
</pre>";

结果如下图所示:

技术分享

16.array_combine —(合并两个数组) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 。例子:

//数组1
$array = array(1,2,3,4);
//数组2 $array2 = array("zhangsan","lisi","wangwu","zhaoli");
//合并数组 $tem =array_combine($array,$array2); echo "
<pre>"; print_r($tem); echo "</pre>";

 结果如下图:

技术分享

17.array_merge — 合并一个或多个数组

//数组1
$array = array(1,2,3,4);
//数组2
$array2 = array("zhangsan","lisi","wangwu","zhaoli");
//合并数组
$tem =array_merge($array,$array2);
echo "<pre>";
print_r($tem);
echo "</pre>";

 结果如下图:

技术分享

18.array_intersect — 计算数组的交集。例子:

//数组1
$array = array(1,2,3,4,5);
//数组2
$array2 = array(3,4,5,6,7);
//交集
$tem =array_intersect($array,$array2);
echo "<pre>";
print_r($tem);
echo "</pre>";

 结果如下图:

技术分享

19.array_diff — 计算数组的差集。

注意,返回的是第一个数组当中与第二个数组当中不同的数值,不会返回第二个数组中的值。

例子:

//数组1
$array = array(1,2,3,4,5);
//数组2
$array2 = array(3,4,5,6,7);
//交集
$tem =array_diff($array,$array2);
echo "<pre>";
print_r($tem);
echo "</pre>";

如图所示:

 技术分享

20.array_pop — 将数组最后一个单元弹出(出栈)。返回最后一个值,注意:

返回 array 的最后一个值。如果 array 是空(如果不是一个数组),将会返回 NULL 。 

$array = array(1,2,3,4,5);

$tem =array_pop($array);
echo "<pre>";
print_r($tem);//返回最后一个值为5
echo "</pre>";

21.array_push — 将一个或多个单元压入数组的末尾(入栈) 。返回处理之后数组的元素个数。

$array = array(1,2,3,4,5);

$tem =array_push($array,6);
echo "<pre>";
print_r($tem);//返回处理之后数组的元素个数。
echo "</pre>";

22.array_shift — 将数组开头的单元移出数组。注意,返回移出的值,如果 array 为 空或不是一个数组则返回 NULL。  

$array = array(1,2,3,4,5);
$tem =array_shift($array);
echo "<pre>";
print_r($tem);//返回移出的值为1

echo "</pre>";

23.array_unshift — 在数组开头插入一个或多个单元 

$array = array(1,2,3,4,5);
$tem =array_unshift($array,22);
echo "<pre>";
print_r($tem);//返回数组的元素个数

echo "</pre>";

24.list();

//按索引角标顺序来进行解构,但是角标必须从0开始,并且是连续的

//只对索引数组有效,当遇到关联数组会直接跳过

$array5 = array("name" => "zhangsan",0 => "lisi",1 =>"wangwu");
list($a,$b) = $array5;
echo $a." ".$b;  //结果为lisi,wangwu

25.each();

//会返回第一个键值对的一个数组(索引和关联数组的混合形式),

//当第二次调用是,游标会自动到下一个,即第二个键值对数组;

$array6 = array("name" => "fangming",0 => "18", "sex" => "man");
$iem1 = each($array6);
print_r($iem1);
echo "<br>";
$iem2 = each($array6);
print_r($iem2);
  

26.list,each结合使用

list($a,$b) = each($array6);
echo $a.":".$b."<br>";
  

27.利用while循环结合list,each进行遍历

$array7 = array("name" => "fangming","age" => "18", "sex" => "man");
while(list($a,$b) = each($array7)){
    echo $a.":".$b."<br>";
};

28.reset,重置数组,使游标返回第一位

reset($array7);

 

 

 

 


 

 


 








 



 



 





 




 




 

 

php 数组常用函数

标签:入栈   合并   res   eve   zhang   logs   影响   function   连续   

原文地址:http://www.cnblogs.com/-zhq/p/6560937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!