数组的相关处理函数


一.和数组键/值相关的处理函数

1.array_values()

$lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");

$arr=array_values($lamp); //输出:array("liunx","Apache","Mysql")

作用传入一个数组,返回一个顺序的索引数组

2.array_keys(array input[,mined search_value[,bool strict]])

参数:第二个参数为可选参数,则只返回该值的键名,否则,input数组中所有的键名都被返回,

    第三个参数为全等比较.

作用:返回 input 数组中的数字或字符串的键名

例: $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");

   $arr=array_key($lamp);  //输出: os  webserver db

   $arr=array_key($lamp,"Mysql");  //输出: db

   $arr=array_key($lamp,"Mysql",true);  //输出:db  注意必须是全等于类型要匹配


3.in_array(mixed needle,array haystack[,bool strict]);

作用:在haystack中搜索needle,如果找到则返回TRUE,否则返回FALSE.第三个参数为可选参数

如果为true,则会检查needle的类型和haystack中是否相同

例: $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");

   if(in_array("linux",$lamp)){

echo "存在"

   }else{

echo "不存在"

   }

4.array_key_exists()判定下标在不在数组中,用法和上面一样


5.array_flip()  交换数组中的键和值,参数为数组


6.array_reverse返回排列顺序对调


二.统计数组元素的个数和唯一性的一些函数.

cout()和sizeof()是别名关系;


cout($array,参数2),第二参数为可选参数,(如果数组里面还有数组)0为默认值不检测多维数组,1为检测多维数组,递归的统计子数组的个数.


例: $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql",array(1,2,3) );

   echo cout($lamp); //结果: 4

   enco cout($lamp,1);//结果:8



array_count_values()作用:统计数组中所有的值出现的次数.传入一个数组,返回一个数组;


<php?

$arr = array(1,"hello","world",1,"hello");

print_r(array_count_values($arr));

?>

输出结果:

Array

(

[1]=>2

[hello]=>2

[world]=>1

)



array_unique($arr)作用:移除数组中重复的值.



三. 使用回调函数处理函数的函数


1. array_filter 用回调函数过滤数组中的单元.


$lamp=array(1,2,-3,4,5,6,-7,8,9,10);

$arr=array_filter($lamp,"myFun");

function myFun($n){

if($>0){

  return true;

}else{

  return false;

}

}


2. array_walk

   对数组中每个成员应用用户函数

    $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");

    array_walk($lamp,"myFun");

    function myFun($value,$key){

echo"The key'{$key}' has value '$value'<br>"

    }


3. array_map