Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:不容易呀
<?php
$age=array("nl"=>"35","fs"=>"98","hg"=>"60");
// CASE_UPPER - 将数组的键转换为大写字母。
$ages = (array_change_key_case($age,CASE_UPPER));
printf('<pre>%s</pre><hr>', print_r($ages, true));
//CASE_LOWER - 默认值。将数组的键转换为小写字母
$ages = (array_change_key_case($age,CASE_LOWER));
printf('<pre>%s</pre><hr>', print_r($ages, true));
$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
//下面括号里面写3 就是3个内容分一个数组块 写2就是2个内容为一个数组块 3后面加true - 保留原始数组中的键名。
$carss = array_chunk($cars,3);
printf('<pre>%s</pre><hr>', print_r($carss, true));
// 可能从数据库中返回数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
// $a为原始内容 last_name是要显示的键名
$last_names = array_column($a, 'last_name');
printf('<pre>%s</pre><hr>', print_r($last_names, true));
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
//第一个为键名数组,第二个为键值
$c=array_combine($fname,$age);
printf('<pre>%s</pre><hr>', print_r($c, true));
// 第一个参数为起始值 第二个参数为填充数量 第三个参数为填充内容
$a1=array_fill(2,5,"blue");
printf('<pre>%s</pre><hr>', print_r($a1, true));
$keys=array("a","b","c","d");
// 上面的数组为键值 下面第一个为原始内容 第二个为附给的内容
$a1=array_fill_keys($keys,"blue");
printf('<pre>%s</pre><hr>', print_r($a1, true));
$a=array("Volvo"=>"XC90","BMW"=>"X5");
if (array_key_exists("Volvo",$a))
{
//检测Volvo是否存在变量a中 存在则返回存在
echo "存在";
}
else
{
// 不存在则返回不存在
echo "不存在";
}
echo '<hr>';
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
$as = (array_keys($a));
printf('<pre>%s</pre><hr>', print_r($as, true));
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
// 重复的键名会被后面的覆盖
$a12 = (array_merge($a1,$a2));
printf('<pre>%s</pre><hr>', print_r($a12, true));
$a=array("a"=>"red","b"=>"green","c"=>"red");
$as = (array_unique($a));
printf('<pre>%s</pre><hr>', print_r($as, true));
$arr = [150, 'php',true,[4,5,6], (new class {}), [], null, false, '', 0, '0'];
$res = array_filter($arr,function($item){
return $item;
});
printf('<pre>%s</pre><hr>', print_r($res, true));
function myfunction($v)
{
return($v+$v);
}
$a=array(1,2,3,4,5);
$aa = (array_map("myfunction",$a));
printf('<pre>%s</pre><hr>', print_r($aa, true));
// array_map(): 同时处理多个数组
$key = ['user', 'password'];
$values = ['admin', '123456'];
$res = array_map(function($value1, $value2) {
return [$value1 => $value2];
}, $key, $values);
printf('<pre>%s</pre><hr>', print_r($res, true));
echo $res[2]['password'];
echo '<hr>';
function myfunction2($v1,$v2)
{
return $v1 . "<hr>下一个" . $v2;
}
$a=array("小明","小张","小王","小李");
print_r(array_reduce($a,"myfunction2")."<hr>");
function myfunction3($value,$key)
{
echo "键名 $key 键值 $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction3");
echo '<hr>';
$a=array("苹果","香蕉","橘子","榴莲","西瓜");
//第一个为原始数据 第二个是起始位置 第三个是选定几个
print_r(array_slice($a,2,2));
echo '<hr>';
$a1=array("a"=>"苹果","b"=>"香蕉","c"=>"橘子","d"=>"榴莲");
//这里把a替换成苹果手机 b替换成香蕉手机 c删除
$a2=array("a"=>"苹果手机","b"=>"香蕉手机","c"=>"");
//下面 第一个为原始数据 2是起始位置 3是替换数量 4是替换内容
array_splice($a1,0,3,$a2);
printf('<pre>%s</pre><hr>', print_r($a1, true));