批改状态:合格
老师批语:还有其它的数组操作函数,一定要多看多练。
用户提交的url:
http://127.0.0.1/20200713/1.php?username=%E5%B0%8F%E5%88%9A&email=admin@php.cn
代码示例:
array_key_exist()判断用户提交数据是否存在必要字段
echo array_key_exists('username', $_GET) ? '提交成功' : '用户名未提交';
array_key_first()获取用户提交的数据中第一个元素的键
echo array_key_first($_GET);
array_key_last()获取用户提交的数据中最后一个元素的键
echo array_key_last($_GET);
array_keys()获取用户提交数据数组所有键
print_r(array_keys($_GET));
array_values()将用户提交的数据的值组成索引数组
print_r(array_values($_GET));
in_array()检查用户提交数据中是否存在值’小刚’
echo in_array('小刚', $_GET) ? '用户名存在' : '用户名未提交';
array_search()查找用户提交数据的值中是否有admin@php.cn
echo array_search('admin@php.cn', $_GET) ? '邮箱正确' : '邮箱未提交';
array_unique()移除数组中重复的值,只保留第一个
$array = ['name' => '小刚', 'name' => '小明', 'email' => 'admin@php.cn'];print_r(array_unique($array));
array_sum()计算数组中数字之和,元素的值数字开头的数字也会计算,不能被计算的字符串记为0
$arr = [5, 10, 20, '200', 'h5'];echo array_sum($arr);
array_product()计算数组中所有值的乘积,不能被计算的字符串记为0
echo array_product($arr);
array_intersect()计算数组的交集
print_r(array_intersect($array, $_GET));
用户提交的url:
http://127.0.0.1/20200713/2.php?username=%E5%B0%8F%E5%88%9A&email=admin@php.cn
$token = sha1(md5('小刚'));array_push($_GET, $token);print_r($_GET);
echo array_pop($_GET);
$key = sha1(md5('小刚'));array_unshift($_GET, $key);print_r($_GET);
echo array_shift($_GET);print_r($_GET);
$array = [5, 10, 15, 20, 11, 2, '66l', 'Po'];
sort()对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。
var_dump(sort($array));print_r($array);
asort()对数组进行排序并保持索引关系
var_dump(asort($array));print_r($array);
arsort()对数组进行逆向排序并保持索引关系
var_dump(arsort($array));print_r($array);
ksort()对数组按照键名排序
var_dump(ksort($array));print_r($array);
krsort()对数组按照键名逆向排序
var_dump(krsort($array));print_r($array);
usort()使用用户自定义的比较函数对数组中的值进行排序
function arr(){$arr = [5, 10, 15, 20, 11, 2, '66l', 'Po'];$arr1 = [5, 10, 15, 20, 11, 2, '66l', 'Po'];return $arr == $arr1 ? 0 : -1;}var_dump(usort($array, 'arr'));print_r($array);echo 'usort';
uasort()使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
var_dump(uasort($array, 'arr'));print_r($array);echo 'uasort';
uksort()使用用户自定义的比较函数对数组中的键名进行排序
var_dump(uksort($array, 'arr'));print_r($array);echo 'uksort';
natsort()用“自然排序”算法对数组排序
var_dump(natsort($array));print_r($array);
natcasesort()用“自然排序”算法对数组进行不区分大小写字母的排序
var_dump(natcasesort($array));print_r($array);
http://127.0.0.1/20200713/4.php?name=%E5%B0%8F%E5%88%9A&age=18&sex=%E7%94%B7&email=admin@php.cn
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
print_r(array_slice($_GET, 2, 6));print_r(array_slice($_GET, -1, 3));
array_splice()操作数组案例:
$array = ['小刚', 18, '男', '180cm'];// 增:利用删除长度为0的方法新增元素// 由于被删除的元素长度为0,所以返回空数组print_r(array_splice($array, 1, 0, ['name' => '小明', '年龄' => 28]));print_r($array);// 删除数组中的一部分元素:删除索引1开始的2个元素// 返回被删除的元素// print_r(array_splice($array, 1, 2));// 原数组已改变// print_r($array);// 改:去掉数组中的某一部分并用其它值取代// 返回被提取出的元素,这里['小刚', 18]被替换// print_r(array_splice($array, 1, 2, ['小明', 20]));// echo '<br>';// 原数组已被改变// print_r($array);
array_combine()数组合并,将第一个数组的值作为键与第二个数组的值合并成一个数组。
$array1 = ['name', '班级', '容貌'];$array2 = ['小明', '13期', '神仙颜值'];$array3 = array_combine($array1, $array2);print_r($array3);
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
$array4 = array_merge($array1, $array2);print_r($array4);
array_filter(),将元素转换后为false的值全部过滤掉回调函数结果为数组
$array = [150, 'php', true, [4, 5, 6], (new class{}), [], null, false, '', 0, '0'];$get = array_filter($array);$get = array_filter($array, function ($item) {// 返回传入的元素// return $item;// is_scalar()检测数组中的元素是否是标量// 标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。return is_scalar($item);// 检测数组中的元素是否是数组// return is_array($item);});print_r($get);
array_map()为数组的每个元素应用回调函数返回新数组
$get = array_map(function ($item) {// 判断数组的每个元素类型是否数组return gettype($item) == 'array' ? '是数组' : '不是数组';}, $array);print_r($get);
url:http://127.0.0.1/20200713/7.php?name=%E5%B0%8F%E5%88%9A&age=18&sex=%E7%94%B7&email=admin@php.cn
implode()将一个一维数组的值转化为字符串
echo implode($_GET);
extract()从数组中将变量导入到当前的符号表对每个键/值对都会在当前的符号表中建立变量
echo extract($_GET);echo $name, $age, $sex, $email;
compact()建立一个数组,包括变量名和它们的值
$host = '127.0.0.1';$user = 'admin';$dbname = 'parse';print_r(compact('host', 'user', 'dbname'));
数组操作函数的返回值一定要记住;
数组元素操作可以组合数据库连接字符串及查询语句;
用户提交的数据过滤;
掌握数组与字符串的转换技巧;
掌握栈与队列的含义及工作流程。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号