<?php $codes = '<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组常用键值处理函数</title> <style type="text/css"> h1{margin: 0px;color: red;background: #ccc;} h3{margin: 0px;color: red;background: #ccc;} h5{margin: 0px;color: red;background: #ccc;} body{font-size: 24px;color: #aaa;} </style> </head> <body> <h1>数组常用键值处理函数</h1> </body> </html>'; echo ($codes); /** * 数组函数__键值操作 * 1.array_values($arr): 返回元素值组成的新数组(索引) * 2.array_column($arr,$col, $index): 返回多维数组中的一列,可指定键或索引 * 3.array_keys($arr,$val,$bool): 返回键名组成的新数组 * 4.in_array($val, $arr, $bool): 根据元素值判断值是否在数组中,返回布尔值 * 5.array_search($val, $arr,$bool): 查找指定值,并返回该值的键名,否则返回false * 6.array_key_exists($key,$arr): 根据键名判断元素是否在数组中 * 7.array_flip($arr): 键值互换 * 8.array_reverse(): 数组元素顺序翻转 */ $arr1 = ['id'=>10, 'name'=>'杨过', 'sex'=>'male', 'salary'=>8000]; /** * 预备: 数组输出的二个函数 * 1. print_r($arr,$bool) 格式化输出变量 * 2. var_dump($arr1,$arr2...) 可输出多个变量的详细信息 * 3. var_export($arr,true) 输出变量的字符串表示,其实就是php语句 */ //print_r($arr,$bool)可直接打印标量,数组或对象,第二个参数为true,则将结果以字符串形式输出到一个变量中 print_r($arr1); $res = print_r($arr1, true); // echo '<pre>'; echo gettype($res),'<br>'; echo $res,'<br>'; //var_dump($var1, $var2...)显示变量,可递归显示数组 //var_dump($arr1); //var_export($arr1,$bool):返回变量的字符串表示,第二个参数true,将结果输出到变量中 echo var_export($arr1,true), '<hr>'; /** * 一、array_values($arr) * 1. 功能: 获取数组中的元素值组成的新数组 * 2. 参数: 只有一个:要处理的数组 * 3. 返回: 由元素值组成的,且键名经过重新排序的索引数组 * 4. 场景: 1.关联转索引 2.键名重新整理 */ echo '<pre>',(var_export(array_values($arr1),true)),'<hr>'; echo '</pre>check<br>'; $arr_new=(var_export(array_values($arr1),true)); echo trim($arr_new,'"ymaler0/()/(/,"'); echo '<br>',$arr_new; echo'<br>check<hr>'; /** * 二、array_column($arr,$col,$bool) * 1. 功能: 获取多维数组中指定列值组成的新数组 * 2. 参数: $arr(必),$col(必),$bool(选)类型匹配 * 3. 返回: 多列组成的新数组 * 4. 场景: 获取数据表中的指定列的值 */ //该函数必须使用多维数组,才有意义,php7.0支持对象数组 $arr2 = [ ['id'=>10, 'name'=>'杨过', 'sex'=>'男', 'salary'=>8000], ['id'=>13, 'name'=>'欧阳克', 'sex'=>'男', 'salary'=>5000], ['id'=>15, 'name'=>'小龙女', 'sex'=>'女', 'salary'=>7000], ['id'=>20, 'name'=>'黄蓉', 'sex'=>'女', 'salary'=>9000], ]; //输出每个元素中的salary列的值,默认返回索引数组 echo var_export(array_column($arr2, 'salary'),true), '<br>'; //传入第三个参数指定键名:name,这样更直观 echo var_export(array_column($arr2, 'salary','name'),true), '<hr>'; /** * 三、array_keys($arr, $val, $bool) * 1. 功能: 返回键名组成的新数组 * 2. 参数: $arr(必),$key(必),$bool(选)类型匹配 */ //返回键名组成的新数组 echo var_export(array_keys($arr1),true), '<br>'; //返回指定值对应的键名 echo var_export(array_keys($arr1, 'male'),true), '<hr>' ; /** * 四、in_array($val, $arr, $bool) * 1.功能: 检查数组中是否存在某个值 * 2.参数: $val(必),$arr(必),$bool(选)是否严格类型匹配 * 3.返回: bool * 4.场景: 仅适合一维数组 */ echo in_array('male', $arr1,false) ? '存在' : '不存在', '<hr>'; /** * 五、array_search($val, $arr, $bool) * 1.功能: 在数组中查询指定的值 * 2.参数: $val(必),$arr(必),$bool(选)类型匹配 * 3.返回: 成功返回值对应的键名,失败返回false * 4.场景: 与in_array()相比,可以获取更精准的信息 */ $res = array_search('male', $arr1); //$res = array_search('female', $arr1); //如果找到返回键名,否则返回false,并提示:没有找到 echo $res ?: '没有找到', '<hr>'; /** * 六、array_key_exists($key,$arr) * 1.功能: 判断数组中是否存在指定的键名 * 2.参数: $key(必), $arr(必) * 3.返回: true / false * 4.场景: 仅适用于一维数组,判断GET参数很方便 */ echo array_key_exists('name',$arr1) ? '键名存在' : '键名不存在', '<hr>'; /** * 七、array_flip($arr) * 1.功能: 键值互换 * 2.参数: $arr(必) * 3.返回: 新数组 */ echo var_export(array_flip($arr1),true),'<hr>'; /** * 八、array_reverse($arr) * 1.功能: 数组元素顺序反转 * 2.参数: $arr(必) * 3.返回: 新数组 */ echo var_export(array_reverse($arr1),true),'<hr>';