Correcting teacher:Guanhui
Correction status:qualified
Teacher's comments:数组函数是数据处理的一大利器,所以一定要熟练运用。
1.数组常用键名函数
<?php
$array = ['id'=>6,"shopname"=>"长江7号","phone"=>15635673557];
//数组常用键名函数
//array_keys(数组):获取数组的所有键名,返回数组; 而key(数组)是按指定返回单个元素键名
print_r(array_keys($array));
echo "<br>";
// array_key_exists:判断键名否存在数组中,返回true或false
echo array_key_exists("shopname",$array)?"有":"没有";
echo "<br>";
// array_key_first:获取数组第一个键名,返回键名 PHP版本7.3后可使用
echo array_key_first($array);
echo "<br>";
// array_key_first:获取数组最后一个键名,返回键名 PHP版本7.3后可使用
echo array_key_last($array);
echo "<hr>";
2.组常用值函数
<?php
//数组常用值函数
$arr = ['id'=>6, 3 => '商店', "shopname"=>"长江7号", "phone"=>15635673557, 30,"商店"];
//array_values(数组):获取数组的所有值,返回数组;
print_r(array_values($arr));
echo "<br>";
// in_array:判断值否存在数组中,返回true或false
echo in_array("商店",$arr)?"存在":"不存在";
echo "<br>";
// array_search:获取元素值对应的键名,找不到返回布尔false
echo array_search("长江7号",$arr);
echo "<br>";
//array_unique:剔除相同值,返回新的数组(保留最先的相同值,提出后面相同值)
print_r(array_unique($arr));
echo "<hr>";
1.栈: 是添加与删除受限的一种数据结构,数据的增删仅允许在一端进行, LIFO,最后进最先出
<?php
$stack_arr = [];
// 1.在栈的尾部进行进栈与退栈(增删)
// array_push(数组,元素1,元素2,....):向数组尾部添加一个或多个元素(进栈),然后返回新数组的长度。
echo '数组长度:'.array_push($stack_arr,111,222,333),"----->";
print_r($stack_arr);
echo "<br>";
// array_pop(数组):删除数组中的最后一个元素(退栈,取出元素),返回删除的元素值,当没有元素时,则返回null。
echo '删除元素:'.array_pop($stack_arr);
echo "<br>";
// 2.在栈的头部进行增删
// array_unshift(数组,元素1,元素2,....):向数组头部添加一个或多个元素,然后返回新数组的长度。
echo '数组长度:'.array_unshift($stack_arr, 'one', 'two',"三"),"--->";
print_r($stack_arr);
echo "<br>";
// array_shift:删除(取出)数组中的第一个元素,并返回被删除(取出)元素的值
echo '删除元素:'.array_shift($stack_arr);
echo "<hr>";
2.队列: 先进先出FIFO
<?php
$arr = [];
// 尾部进队 + 头部出队, array_push + array+shift
array_push($arr, "AAA","BBB",'CCC');
print_r($arr);
echo "<br>";
// 头部出队,对照栈,栈尾部进,尾部出
echo array_shift($arr);
print_r($arr);
echo "<br>";
// 头部进队+尾部出队 + , array_unshift + array+pop
array_unshift($arr, 'ddd', 'eee', 'fff');
print_r($arr);
echo "<br>";
array_pop($arr);
print_r($arr);
echo "<hr>";
array_slice(数组,起始位置,长度): 从数组中取出一部分元素
<?php
// array_slice(数组,起始位置,长度): 从数组中取出一部分元素
$users =["id"=>'1021','name'=>"陈松江",'sex'=>'男',"money"=>666.66,"pwd"=>"888888"];
//长度不填,默认全部
print_r(array_slice($users, 0));
echo "<br>";
print_r(array_slice($users, 2,2));
echo "<br>";
print_r(array_slice($users, -4,3));
echo "<hr>";
// array_splice(数组,其实位置,长度):从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组(实现增删改)
<?php
$arr = [111, 222, 333, 666,999];
// 删除
// 返回被删除的元素组成的数组
echo "删除前:";
print_r($arr);
echo "<br>";
// 返回被删除的元素组成的数组
print_r(array_splice($arr, 1, 2));
echo "<br>";
print_r($arr);
echo "<hr>";
// 替换
echo "替换前:";
print_r($arr);
echo "<br>";
// 返回被替换的元素组成的数组
print_r(array_splice($arr,2,2,["AAA","BBB"]));
echo "<br>";
print_r($arr);
echo "<hr>";
// 新增
echo "新增前:";
print_r($arr);
echo "<br>";
// 返回空数组
print_r(array_splice($arr, 2, 0, [444, 555]));
echo "<br>";
print_r($arr);
echo "<hr>";
<?php
$keys = ['id', 'name', 'unit', 'money', 'num'];
$values = [66, '哈密瓜', '斤', 60, 4];
// array_combine(键名组,值组):合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值,2组元素梳理要相同
print_r(array_combine($keys, $values));
echo "<hr>";
// array_merge(array1,array2,array3...):把一个或多个数组合并为一个数组
print_r(array_merge($keys,$values)) ;
array_filter()
函数用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。
<?php
$arr = [111,'哈密瓜','0',0,'111',false,'null',null,'','AAA',[]];
$res = array_filter($arr,function ($item) {
return $item;
});
//与array_filter($arr)效果一致
// [], null, false,'', 0, '0' : 转为false
print_r($res);
echo "<hr>";
extract(): 将关联数组拆分为变量
<?php
// extract(): 将关联数组拆分为变量
$calss = ["id"=>1,'name'=>"王明",'sex'=>'男',"cla"=>"一班"];
extract($calss);
echo $id."////".$name."///".$sex."///".$cla;
echo "<hr>";
compact():将一组变量组装成关联数组
<?php
// compact():将一组变量组装成关联数组
$id=123;
$title="标题";
$status= 1;
print_r(compact("id",'title','status'));
上面例举只是数组函数中的一小部分,在实际开发中,要根据所需的结果去选择数组函数;这要我们多去了解其他数组函数的功能及参数,还有返回值及类型