批改状态:合格
老师批语:多写一些咱们课上没讲的函数多好
array_keys() :获取数组中的所有键名,并返回一个新的数组
<?php$arr = ["lat" => 23.2215, "lng" => 123.123, '省市' => '广东'];print_r(array_keys($arr));

array_key_exists()检索给定的键名是否存在数组中,返回布尔值`array_key_exists(“target”,$arr)
<?php$arr = ["lat" => 23.2215, "lng" => 123.123, '省市' => '广东'];echo array_key_exists('lat', $arr) ? '成功' : '请输入正确的lat';
array_key_first()/array_key_last() 返回数组中第一个元素/最后一个的键名,用于数组较大的情况
<?php$arr = ["lat" => 23.2215, "lng" => 123.123, '省市' => '广东'];echo array_key_first($arr), '<hr>';echo array_key_last($arr);

array_values() 获取数组所有的值(返回的是一个索引数组)
<?php$arr = ["lat" => 23.2215, "lng" => 123.123, 'province' => '广东', 'city' => '佛山', "code" => 1];print_r(array_values($arr));echo '<hr>';
array_search():找到了返回元素值对应的键名,找不到返回false
arrar_unique():删除重复值

<?php$arr2 = [1, 2, 3, 4, '5dd6'];echo array_sum($arr2);//数组内的数组相加,字符串会被转换为整数,echo "";echo array_product($arr2);

| 函数 | 功能 |
|---|---|
array_push() |
将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数; |
array_pop() |
删除数组中的最后一个元素,出栈,返回删除的元素值,当没有元素时,则返回null。 |
array_unshift() |
向数组插入新元素。新数组的值将被插入到数组的开头,队操作 |
array_shift() |
删除数组中的第一个元素,并返回被删除元素的值,队操作 |
<?php//栈与队列//栈是添加与删除受限的一种数据结构,数据的增删仅允许在一端进行,LIFO,最后进先出$arr = [];//array_push:向数组尾部插入一个或多个元素,返回值是数组的长度echo '入栈:' . array_push($arr, 1, 3, 5);print_r($arr);echo '<hr>';//array_pop():函数用来删除数组末尾的元素(出栈)返回值是删除的值echo '出栈pop:' . array_pop($arr);echo '<hr>';echo '出栈pop:' . array_pop($arr);echo '<hr>';echo '出栈pop:' . array_pop($arr);echo '<hr>';echo '出栈pop没有了会弹出:', var_dump(array_pop($arr));echo '<hr>';//队列:先进先出//array_unshift():函数用于向数组插入新元素。新数组的值将被插入到数组的开头echo '在头部array_unshift新增元素:' . array_unshift($arr, 2, 4, 6) . '';print_r($arr);echo '<hr>';echo '在队的头部array_shift删除元素:' . array_shift($arr);echo '<hr>';echo '在队的头部array_shift删除元素:' . array_shift($arr);echo '<hr>';echo '在队的头部array_shift删除元素:' . array_shift($arr);//array_shift():删除数组中的第一个元素,并返回被删除元素的值

| 函数 | 功能 |
|---|---|
sort() |
升序排列,键名重新生成 |
asort() |
按照值进行升序排列,键名不会重新生成 |
ksort() |
按键名进行升序排列 |
krsort() |
按键名进行降序排列 |
usort() |
自定义排序 usort(数组名,回调函数),回调中可以操作数组后再返回 |
natsort() |
自然排序 |
<?php$model = ["lat" => 23.2215, "lng" => 123.123, 'province' => '广东', 'city' => '佛山', "code" => 1];print_r($model);echo "<hr>";$arr=$model;sort($arr);print_r($arr);echo "<hr>";// 按照值进行升序排列,键名不会重新生成$brr=$model;asort($brr);print_r($brr);echo "<hr>";// 按键名进行升序排列$crr=$model;ksort($crr);// 按键名进行升序排列print_r($crr);krsort($crr);echo "<hr>";// 按键名进行降序排列print_r($crr);echo "<hr>";

<?phpecho "原始数组:";$pics = ['pic5.jpg', 'pic8.jpg', 'pic12.jpg', 'pic9.jpg','pic1.jpg'];print_r($pics);echo "<hr>";//普通数组排序sort($pics);print_r($pics);echo "<hr>";// 用natsort()自然算法对数组排序natsort($pics);print_r($pics);

array_slice():从数组中取出一部分元素,不影响原始数组
<?php$model = ["lat" => 23.2215, "lng" => 123.123, 'province' => '广东', 'city' => '佛山', "code" => 1];print_r($model);echo "<hr>";$res = array_slice($model,1,2);print_r($res);echo "<hr>";$res = array_slice($model,-3,2);print_r($res);

array_splice():从数组中移除并返回指定的元素组成的数组,实现增删改array_splice(要操作的数组, 从什么位置开始操作 , 操作几个)array_splice(要操作的数组, 从什么位置开始操作 , 操作几个 ,[替换的元素])array_splice(要操作的数组, 从什么位置开始操作 , 0,[替换的元素]) 第三个参数设0就不删只增
<?php$arr = [1,2,3,4,5,6,7,8,9,10];print_r($arr);echo "<hr>";//删除//array_splice(要操作的数组,从什么位置开始操作,操作几个)//返回结果是被删除元素组成的数组$res = array_splice($arr,1,2);print_r($res);echo "<hr>";//操作影响原始数组print_r($arr);//替换echo "<hr>";$res = array_splice($arr,1,2,[400,500]);print_r($res);echo "<hr>";print_r($arr);

array_combine():合并数组
<?php$arr = ['力量','敏捷','智力','体能'];$value = [120,230,340,450];$res = array_combine($arr,$value);print_r($res);

array_merge()函数用于把一个或多个数组合并为一个数组,键名相同会覆盖
<?php$arr = ['力量'=>120,'敏捷'=>230,'智力'=>340,'体能'=>450];$value = ['力量'=>12000,'敏捷'=>230000,'内息'=>50000];$res = array_merge($arr,$value);//键名相同会覆盖,array_merge($arr,$value)后面的覆盖前面的print_r($res);

array_filter()只返回元素可以转为true的元素
<?php$arr = [10,'string_php','1',true,[4,5,6],(new class{}),'0',0,false,null,'',[]];//array_filter() 只返回元素可以转为true的元素$result = array_filter($arr);print_r($result);// '0', 0,false, null,'',[]: 转为false

array_map()为数组中的每个元素应用指定的回调函数进行处理,并返回新数组
<?php//array_map():为数组中的每个元素应用指定的回调函数进行处理,并返回新数组$arr = ['username',[1,2,3],(new class{public $name = 'admin';public $age = 18;}),100];$res = array_map(function($item){// 示例:如果数组元素是对象,则输出它的属性,如果是数组,则转为字符串,否则直接输出switch (gettype($item)){case 'object':$item = get_object_vars($item);$item = implode(',',$item);break;case 'array':$item = implode(',',$item);}return $item;},$arr);print_r($res);

extract() 将关联数组拆分为变量!!!!!
<?php//extract():将关联数组拆分为变量$config = ['type'=>'mysql','host'=>'localhost','dbname' => 'xp_cms','charset'=>'utf-8','username' => 'root','password' => '123456'];extract($config);echo $username,'<hr>';echo $password,'<hr>';echo $dbname,'<hr>';

compact():将一组变量变为关联数组
<?php$point = '在线地图点1';$lng = 123.2123;$lat = 22.6445;$desc = "xcfvsdfsdfsdf";//注意参数的写法是写键名字符串而不是传变量print_r(compact('point', 'lat', 'lng','desc'));

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