Correcting teacher:灭绝师太
Correction status:qualified
Teacher's comments:
array_keys($arr)
函数返回键名组成的索引数组array_key_first($arr)
函数返回数组中的第一个键名array_key_last($arr)
函数返回数组中的最后一个键名array_key_exists('id', $arr)
存在函数返回 true 不存在返回 falsearray_values($arr)
函数返回数组的值组成的索引数组in_array('OPPO', $arr)
存在函数返回 true 不存在返回 falsearray_search('OPPO', $arr)
存在函数返回键名 不存在返回 falsearray_unique($arr)
函数返回一个被删除了重复值的数组array_sum($arr)
函数返回相加求和结果array_product($arr)
函数返回相乘求积结果sort($arr)
函数直接对原数组进行按值升序排序 数组键名会重置asort($arr)
函数直接对原数组进行按值升序排序 数组键名保留ksort($arr)
函数直接对原数组进行按键升序排列krsort($arr)
函数直接对原数组进行按键降序排列13.自定义排序:利用回调函数自定义排序方法
usort($arr,function(){})
函数直接对原数组按值进行用户指定的排序 不保留原数组键名uasort($arr, function(){})
函数直接对原数组按值进行用户指定的排列 保留原数组键名uksort($arr,function(){})
函数直接对原数组按键进行用户指定的排序
<?php
$arr = [1=>88, 0=>78, 3=>98, 8=>28, 6=>38];
usort($arr, function($val){
return ($val < 50)?1:-1; //值小于50的往后排列
});
print_r($arr);
echo '<hr>';
$arr = [1=>88, 0=>78, 3=>98, 8=>28, 6=>38];
uasort($arr, function($val){
return ($val < 50)?1:-1; //值小于50的往后排列
});
print_r($arr);
echo '<hr>';
$arr = [1=>88, 0=>78, 3=>98, 8=>28, 6=>38];
uksort($arr, function($k1, $k2){
return ($k1 - $k2); //按键名从小到大排列
});
print_r($arr);
echo '<hr>';
natsort($arr)
函数直接对原数组进行自然排序rray_slice($arr, 起始位置, 取出个数)
函数返回取出的指定部分形成的数组array_splice($arr, 起始位置, 删除个数, 要替换的数组)
<?php
$arr = [1=>88, 0=>78, 3=>98, 8=>28, 6=>38];
$res = array_splice($arr, 1, 0, ['增', '加']); //增加两个元素
print_r($res);
print_r($arr);
echo '<hr>';
$res = array_splice($arr, 1, 2); //删除前面增加的部分
print_r($res);
print_r($arr);
echo '<hr>';
$res = array_splice($arr, 1, 2, ['修', '改']); //修改部分元素
print_r($res);
print_r($arr);
echo '<hr>';
array_combine($key,$value)
函数将两个数组合并成新的数组array_merge($key, $value, [100,200])
函数将多个数组合并成一个新的数组 函数返回合并后的新数组
<?php
$key = ['id', 'name', 'password'];
$value = [100, 'root', 'root'];
$res = array_combine($key,$value);
print_r($res);
echo '<hr>';
$res = array_merge($key, $value, [100,200]);
print_r($res);
array_filter($arr, function(){})
函数返回通过回调函数返回值为 true 的数组 其键名与原数组键名相同array_map(function(){}, $arr)
函数返回经回调函数处理之后的新数组
<?php
$arr = ['id', 100, 'name', 'root', 'password', 'root', 200];
$res = array_filter($arr, function($val){
return is_string($val)?$val:false;
});
print_r($res);
echo '<hr>';
$res = array_map(function($val){
return is_numeric($val)?0:$val;
},$arr);
print_r($res);
19.关联数组与变量:
extract($arr)
函数将关联数组转为一组变量 执行之后可以直接使用关联数组的键名访问变量compact('var1', 'var2', ...)
函数将一组变量转为关联数组 函数返回一组关联数组 变量名为键名 变量值为数组的值
<?php
$arr = ['brand'=>'xiaomi', 'model'=>'mix2s', 'price'=>3299];
extract($arr);
echo $brand,'--',$model,'--',$price;
echo '<hr>';
$res = compact('brand', 'model', 'price');
print_r($res);
栈:先进后出的数据结构
队列:先进先出的数据结构
array_unshift()
在数组开头插入一个或多个数据
array_shift()
在数组头部删除一个或多个数据array_push()
在数据尾部插入一个或多个数据arrsy_pop()
在数据尾部删除一个或多个数据
<?php
$stack = [];
//在stack数组的头部进行增删数据
array_unshift($stack, 1);
array_unshift($stack, 2);
array_unshift($stack, 3);
print_r($stack);
echo array_shift($stack);
echo array_shift($stack);
echo array_shift($stack);
echo '<hr>';
$stack = [];
//在stack数组的尾部进行增删数据
array_push($stack, 1);
array_push($stack, 2);
array_push($stack, 3);
print_r($stack);
echo array_pop($stack);
echo array_pop($stack);
echo array_pop($stack);
echo '<hr>';
$queue = [];
//在queue数组的头部进行增加数据 尾部进行删除数据
array_unshift($queue, 1);
array_unshift($queue, 2);
array_unshift($queue, 3);
print_r($queue);
echo array_pop($queue);
echo array_pop($queue);
echo array_pop($queue);
echo '<hr>';
//在queue数组的尾部进行增加数据 头部进行删除数据
array_push($queue, 1);
array_push($queue, 2);
array_push($queue, 3);
print_r($queue);
echo array_shift($queue);
echo array_shift($queue);
echo array_shift($queue);