<?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>';