PHP 操作数组的常用函数
admin
2023-06-22 03:41:25
0次
/*
 * 数组的常用函数
 * 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);


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...