php数组操作函数,PHP 操作数组的常用函数

/*

* 数组的常用函数

* 1.数组的键/值操作函数

* array_values()— 返回数组中所有的值

* array_keys()返回数组中部分的或所有的键名

* in_array() 检查数组中是否存在某个值 如果找到 needle 则返回 TRUE,否则返回 FALSE。

* array_search — 在数组中搜索给定的值,如果成功则返回相应的键名

* array_key_exists — 检查给定的键名或索引是否存在于数组中

*  array_flip — 交换数组中的键和值

*  array_reverse — 返回一个单元顺序相反的数组

*2.数组中统计数组元素

*count — 计算数组中的单元数目或对象中的属性个数

*array_count_values — 统计数组中所有的值出现的次数  返回一个关联数组,用 input 数组中的值作为键名,该值在数组中出现的次数作为值。

*array_unique — 移除数组中重复的值 Returns the filtered array.

*3.使用回调函数处理数组的函数

*array_filter — 用回调函数过滤数组中的单元

*array_walk — 使用用户自定义函数对数组中的每个元素做回调处理

*array_map — 将回调函数作用到给定数组的单元上

*

*/

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

$arr = ['王小明','津沙港湾','小香港'];

$a=array_values($arr);

var_dump($a);

$lamp=array(

'OS'=>'Linux',

'WebServer'=>'Apache',

'DB'=>'MySQL',

'Language'=>'PHP',

'lang'=>'PHP',

'num1'=>10,

'num2'=>'10',

//    'girl'=>null

);

var_dump(array_values($lamp));

list($OS,$WebServer,$DB,$Language) = array_values($lamp);

echo $OS;

$b=array_keys($lamp);//返回所有的键名

$c=array_keys($lamp,'Apache');//返回Apache键名

$d=array_keys($lamp,10,true);//返10 加true 表示10的值和类型都要相同。=== 必须是整型

var_dump($b);

var_dump($d);

//in_array

if(in_array('MySQL',$lamp)){

echo '在数组中';

}else{

echo '不在数组中';

}

//array_search — 在数组中搜索给定的值,如果成功则返回相应的键名

var_dump(array_search('MySQL',$lamp));

//array_key_exists — 检查给定的键名或索引是否存在于数组中

if(array_key_exists('DB',$lamp)){

echo '在数组中';

}else{

echo '不在数组中';

}

//array_key_exists判断数组的值为null返回true

if(array_key_exists('girl',$lamp)){

echo '在数组中';

}else{

echo '不在数组中';

}

//isset() 判断数组的值为null返回false

if(isset($lamp['girl'],$lamp)){

echo '在数组中';

}else{

echo '不在数组中';

}

//array_flip — 交换数组中的键和值

var_dump(array_flip($lamp));

//array_reverse — 返回一个单元顺序相反的数组

var_dump(array_reverse($lamp));

//如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。

$arr1 = [

1=>1,

3=>3,

5=>4

];

var_dump(array_reverse($arr1,true));

============================================================================

//count — 计算数组中的单元数目或对象中的属性个数

$str='I am yangyihai';

var_dump(count($str));//int 1

$str1=[

1=>[1,2,3],

2=>[2,4,6]

];

echo count($str1);//2  默认统计外层数组

echo count($str1,1);//8  如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数  外层加内层

$str2 = [1,1,2,2,2,3,5,7];

//array_count_values — 统计数组中所有的值出现的次数  返回一个关联数组,用 input 数组中的值作为键名,该值在数组中出现的次数作为值。

var_dump(array_count_values($str2));

//array_unique — 移除数组中重复的值 Returns the filtered array.

var_dump(array_unique($str2));

//array_filter — 用回调函数过滤数组中的单元

$arr = [1,2,4,null,"",-5-4-2,-4,3,false,true,3,4,'a'];

var_dump($arr);

var_dump(array_filter($arr));

function calltest($a){

if($a>=0){

return true;

}else{

return false;

}

}

function odd($var){

return($var &1);//奇数 跟1取与操作

}

$arr1 = [1,2,3,4,5,6,7,8,9];

//var_dump(array_filter($arr,'calltest'));

var_dump(array_filter($arr1,'odd'));

var_dump(array_values(array_filter($arr1,function ($var){

return(!($var & 1));//偶数

})));

//array_walk — 使用用户自定义函数对数组中的每个元素做回调处理

function walkcall(&$var){

echo $var=$var*$var.' ';

}

//典型情况下 funcname 接受两个参数。array 参数的值作为第一个,键名作为第二个。

function myfun($value,$key){

echo "{$key}===>{$value}";

}

array_walk($arr1, 'walkcall');

array_walk($arr1, 'myfun');

//使用匿名函数

array_walk($arr1,function(&$value,$key){

$value=$value+1;

});

array_walk($arr1,function(&$value,$key,$str){

$value=$value+1;

echo $key.$str.$value;

},'————');

//var_dump($arr1);

function cube($var){

return $var*$var*$var;

}

$arr2 = [1,2,3,4,5,6,7,8,9];

var_dump(array_map('cube',$arr2));

$arr3 = [1,2,3,4];

$arr4 = ['one','two','three','four'];

function mapcall($a,$b){

echo "$a-----$b
";

}

$rarr=array_map('mapcall', $arr3,$arr4);

var_dump($rarr);

$rarr1=array_map(null, $arr3,$arr4);

var_dump($rarr1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
array_change_key_case -- 返回字符串键名全为小写或大写的数组 array_chunk -- 将一个数组分割成多个 array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_count_values -- 统计数组中所有的值出现次数 array_diff_assoc -- 带索引检查计算数组的差集 array_diff_key -- 使用键名比较计算数组的差集 array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组的差集 array_diff_ukey -- 用回调函数对键名比较计算数组的差集 array_diff -- 计算数组的差集 array_fill -- 用给定的值填充数组 array_filter -- 用回调函数过滤数组中的单元 array_flip -- 交换数组中的键和值 array_intersect_assoc -- 带索引检查计算数组的交集 array_intersect_key -- 使用键名比较计算数组的交集 array_intersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较索引 array_intersect_ukey -- 用回调函数比较键名来计算数组的交集 array_intersect -- 计算数组的交集 array_key_exists -- 检查给定的键名或索引是否存在于数组中 array_keys -- 返回数组中所有的键名 array_map -- 将回调函数作用到给定数组的单元上 array_merge_recursive -- 递归地合并一个或多个数组 array_merge -- 合并一个或多个数组 array_multisort -- 对多个数组或多维数组进行排序 array_pad -- 用值将数组填补到指定长度 array_pop -- 将数组最后一个单元弹出(出栈) array_product -- 计算数组中所有值的乘积
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值