批改状态:合格
老师批语:做为十期老学员, 还能这么认真, 不错的
<?php// ## 键名相关// `array_keys`: 获取所有键名组成的数组$arr = ['id'=>10, 'username'=>'dashu', 'email'=>'dashu@qq.com'];print_r(array_keys($arr)); echo '<hr>';// `array_key_exists`: 是否存在指定键名echo (array_key_exists('email', $arr) ? '存在' : '不存在') . '<hr>';// `array_key_last`" 获取最后一个键名php7.3+echo array_key_last($arr) . '<hr>';// `array_key_first`: 获取第一个键名php7.3+echo array_key_first($arr) . '<hr>';echo '<hr>';// ## 查询与替换$arr = ['macbook pro', 'Dell', 'Lenovo', 'Hp', 'ThinkPad', 'Huawei', 'Xiaomi'];// `array_rand`: 从数组中随机取出一个或多个元素的键名echo array_rand($arr) .'<br>';echo $arr[array_rand($arr)] . '<br>';print_r(array_rand($arr, 4));foreach (array_rand($arr, 3) as $key) {echo $arr[$key] . '<br>';}echo '<hr>';// `array_column`: 获取多维数组中一列组成的新数组$arr = [['id'=>101, 'name'=>'张无忌', 'age'=>20],['id'=>102, 'name'=>'朱元章', 'age'=>30],['id'=>103, 'name'=>'常遇春', 'age'=>40],];$column = array_column($arr, 'name');$column = array_column($arr, 'name', 'id');print_r($column); echo '<hr>';// `array_replace` 使用后面数组的值替换第一个数组的值, 同名的键名会彼此覆盖,适合自定义配置参数$arr = ['type'=>'mysql', 'host'=>'localhost', 'username'=>'root', 'password'=>'root'];$arr1 = ['host'=>'127.0.0.1', 'username'=>'admin'];$arr2 = ['username'=>'peter', 'password'=>'123456'];print_r(array_replace($arr, $arr1, $arr2)); echo '<hr>';// `array_intersect`: 计算数组的交集$arr1 = [10, 20, 30, 40];$arr2 = [1, 20, 30, 5];print_r(array_intersect($arr1, $arr2)); echo '<hr>';// `array_diff`:返回数组的差集print_r(array_diff($arr1, $arr2)); echo '<hr>';echo '<hr>';// 分割与合并// `array_combine`: 通过合并两个数组来创建一个新数组$keys = ['type', 'host', 'dbname', 'username', 'password'];$values = ['mysql', 'localhost', 'phpedu', 'root', 'root'];$values = array_combine($keys, $values);print_r($values); echo '<hr>';// `array_merge`: 把一个或多个数组合并为一个数组$default= ['host'=>'localhost', 'username'=>'root', 'password'=>'root'];$custom = ['username'=>'admin', 'password'=>'123456'];$config = array_merge($default, $custom);print_r($config); echo '<hr>';// `array_chunk`: 将一个数组分割成多个子数组// print_r(range(1,5));$arrs = array_chunk(range(1,20), 6);print_r($arrs);echo '<hr>';// 数组指针$arr = ['id' => 1, 'name' => '张无忌', 'gender' => '男', 'age' => 20];// `key`: 获取当前元素的键名, `current`: 获取当前元素的值echo key($arr) . ' => ' . current($arr) . '<hr>';// `next`: 将数组中的内部指针向前移动一位next($arr);echo key($arr) . ' => ' . current($arr) . '<hr>';// `end`: 将数组的内部指针指向最后一个单元end($arr);echo key($arr) . ' => ' . current($arr) . '<hr>';// `prev`: 将数组的内部指针倒回一位prev($arr);echo key($arr) . ' => ' . current($arr) . '<hr>';// `reset`: 将数组的内部指针指向第一个单元reset($arr);echo key($arr) . ' => ' . current($arr) . '<hr>';// 自动生成// `array_fill`: 用给定的值填充数组print_r(array_fill(0, 5, 'dashu')); echo '<hr>';// `array_fill_keys`: 使用指定的键和值填充数组// 先创建一个键名数组$keys = ['id', 'name', 'age', 'hoppy'];print_r(array_fill_keys($keys, '张无忌')); echo '<hr>';// `array_pad`: 以指定长度将一个值填充进数组$arr = ['iphone', 'xiaomi', 'huawei'];print_r(array_pad($arr, 6, 'mobile'));echo '<hr>';// 类型转换相关// `list`: 将数组中的值赋予一组变量(类似解构赋值)// 索引数组转变量list($id, $name) = [10, '张无忌'];echo "\$id = $id, \$name = $name <br>";// 关联数组也支持php7+list('id'=>$id, 'name'=>$name) = ['id'=>20, 'name'=>'张无忌'];echo "\$id = $id, \$name = $name <br>";// 取一部分值list(,,$email) = [10, '张无忌', 'zhangwuji@qq.com'];echo $email . '<br>';// `implode`: 将数组元素按指定字符拼装成字符串$arr = ['huawei', 'xiaome', 'apple', 'oppo', 'vivo'];echo implode(', ', $arr) . '<br>';// `explode`: 将字符串分割为数组$str = 'blue, green, yellow, red, coral';print_r(explode(', ', $str)); echo '<hr>';// `extract`: 将关联数组拆分成变量名值对$arr = ['host'=>'localhost', 'username'=>'root', 'password'=>'123456'];extract($arr);echo "host=$host; username=$username; password=$password <br>";// `compact`: 将一组变量名值对拼装成一个关联数组键值对$id = 99;$name = '张无忌';$job = 'jiaozhu';// $arr = ['id'=>$id, 'name'=>$name, 'job'=>$job];// print_r($arr);print_r(compact('id', 'name', 'job'));

<?php// 回调处理// `array_filter`: 用回调函数过滤数组中的单元$arr = [10, null, 73, false, 26, 'demo', 30, 35, 99,];print_r($arr);echo '<br>';// 过滤掉数组中的空值/假值// 返回为true的值组成的数组print_r(array_filter($arr));echo '<br>';print_r(array_filter($arr, function($value) {return $value > 30;}));echo '<hr>';// `array_map`: 为数组的每个元素应用回调函数$arr = [2, 5, 8, 10];print_r(array_map(function($value){return $value*2;}, $arr));echo '<br>';// 同时处理多个数组$keys = ['host', 'username', 'password'];$values = ['localhost', 'admin', '666888'];$result = array_map(function ($value1, $value2) {return [$value1=>$value2];}, $keys, $values);print_r($result);echo '<hr>';// array_reduce(): 用回调函数迭代地将数组简化为单一的值$res = array_reduce($result, function ($prev, $current) {// 获取当前元素的键值$key = key($current);$value = current($current);// 拼装成一个元素并返回$prev[$key] = $value;return $prev;});print_r($res);echo '<hr>';// array_walk(): 使用自定义回调对数组中成员逐个处理,返回布尔值// array_walk(数组, 回调,回调的第三个数组的默认值)// 主要用于数组成员 的格式化, 不受数组指针影响$res = ['id'=>20, 'name'=>'无忌', 'email'=>'wuji@qq.com'];array_walk($res, function($value, $key, $color) {printf('[ %s ] => <span style="color:%s">%s</span><br>',$key,$color, $value );},'blue');

array_slice()和array_splice()函数
<?php$arr = ['iphone', 'vivo', 'oppor', 'oneplus', 'sumsung', 'Huawei', 'Xiaomi'];print_r($arr); echo '<hr>';// `array_slice`: 从数组中取出一部分print_r(array_slice($arr, 2, 2)); echo '<hr>';// `array_splice`: 去掉数组中一部分并用其它值代替print_r(array_splice($arr, 3)); echo '<hr>';print_r($arr); echo '<hr>';print_r(array_splice($arr, 3, 2)); echo '<hr>';print_r($arr); echo '<hr>';print_r(array_splice($arr, 3, 2, ['chuizi', 'redmi'])); echo '<hr>';print_r($arr); echo '<hr>';

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号