Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:很认真, 继续
<?php
// 检查指定的键名是否存在于数组中
// array_key_exists('键名','数组')
$a=array('Volvo'=>'XC90','BMW'=>'X5');
if (array_key_exists('Volvo',$a)):
echo '键存在!';
else:
echo '键不存在!';
endif;
// 搜索数组中给定的值并返回键名
// array_search('查找的值','搜索的数组')
$a=array('a'=>'red','b'=>'green','c'=>'blue');
echo array_search('red',$a);
// 比较两个数组的键值,并返回交集
// array_intersect('数组1','数组2')
$a1=array('a'=>'red','b'=>'green','c'=>'blue','d'=>'yellow');
$a2=array('e'=>'red','f'=>'green','g'=>'blue');
$result=array_intersect($a1,$a2);
print_r($result);
// 比较两个数组的键名和键值,并返回交集
$a1=array('a'=>'red','b'=>'green','c'=>'blue','d'=>'yellow');
$a2=array('a'=>'red','b'=>'green','c'=>'blue');
$result=array_intersect_assoc($a1,$a2);
print_r($result);
echo '<hr>';
// list — 把数组中的值赋给一组变量
// list('数组')
$rep = ['red','green','blue'];
list($a,$b,$c) = $rep;
echo $a . $b . $c;
echo '<hr>';
// compact()将一组变量名值对拼装成一个惯量数组键值对
// compact('变量1','变量2','变量3',....)
$firstname = 'Bill';
$lastname = 'Gates';
$age = '60';
$result = compact('firstname', 'lastname', 'age');
print_r($result);
echo '<hr>';
// array_fill()用给定的值填充数组
// array_fill('数组的第一个索引','元素个数','填充数组所使用的值')
print_r(array_fill(0,4,'a'));
echo '<hr>';
// array_fill_keys():使用指定的键和值填充数组
$keys=['a','b','c','d'];
$values = ['red','green','blue'];
// $values为数组时返回的时一个二位数组
$a1=array_fill_keys($keys,$values);
print_r($a1);
echo '<hr>';
// array_pad()用值将数组填补到指定长度
// array_pad('数组','元素的长度','插入的长度')
$a=array('red','green');
print_r(array_pad($a,5,'blue'));
// 负数表示从数组的左边开始插入数据
print_r(array_pad($a,-5,'blue'));
echo '<hr>';
echo '<hr>';
// array_filter()用回调函数过滤数组中的单元
// array_filter('变量','匿名函数')
// 依次将$pdm数组中的每个值传递到匿名函数。如果函数返回 true,则$pdm数组的当前值会被包含在返回的结果数组中。数组的键名保留不变
$pdm = ['a'=>'red','b'=>'green','c'=>'blue','f' => 'NULL', 'd'=>'yellow' ,'e'=>'0'];
print_r(array_filter($pdm , function($item){
// 当$item==='0'为真时,返回数组的键值
return $item ==='0';
}));
echo '<hr>';
// array_map(): 为数组的每个元素应用回调函数
// array_map('匿名函数','变量')
// 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组
// 可以使用多个数组
$ku = ['a'=>'12', 'b'=>'老师','c'=>'学生'];
print_r(array_map(function($n)
{
if($n ==='12'){
return '888';
}else{
return $n;
}
},$ku));
echo '<hr>';
// array_walk() 使用用户自定义函数对数组中的每个元素做回调处理
// array_walk('输入的数组','匿名函数','可选第三个参数')
// 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,function($value,$key,$p)
{
echo "$key $p $value<br>";
},"has the value");
echo '<hr>';
// array_reduce() 函数用回调函数迭代地将数组简化为单一的值
// array_reduce('输入的数组','匿名函数','可选第三个函数')
// 如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值
$num = [1,2,3,4];
print_r(array_reduce($num,function($a,$b)
{
return $a + $b;
}));
echo '<hr>';
array_slice
与array_splice
// array_slice() 从数组中取出一部分
// array_slice('输入的数组','取值的起始位置','取值的终点位置','布尔值')
// 取值位置为负数代表取值方向,正数从左边开始,负数从右边开始
// 终点位置为负数代表这个位置左边的一个取值区域
// 布尔值改变索引方式
$lan =[1,2,3,4,'red','green','blue'];
print_r(array_slice($lan,2,2,'turn'));
echo '<hr>';
// array_splice()删除数组中的某一部分并用其它值取代
// array_splice('输入的数组','取值的起点','取值的终点','替换的值,多个值用数组')
// 返回值是被删除的数据
$lan =[1,2,3,4,'red','green','blue'];
print_r(array_splice($lan,2,3,['yello','black','witch']));
// 打印的是修改后的内容
print_r($lan);
回调函数:把一个匿名函数当成一个函数的参数来使用
队列: 先进先出, 最先插入的数据最先出来, FIFO, 添
加与删除允许在二端进行栈: 后进先出, 最后进入的最先出来, LIFO, 添加与
删除受限,只允许在一端进行参数的负数;影响到取值的起始位置和取值方向还有取值区域