Blogger Information
Blog 5
fans 0
comment 1
visits 5423
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组常用键值处理函数
不羁PHP学习笔记
Original
1163 people have browsed it

笔记

<?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>';
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post