批改状态:合格
老师批语:数组与字符串是任何一门语言的核心内容, 也是组成程序的重要成员
以下内容为两天课堂上讲的知识结构,作业在最后面进行演示和总结,本篇文章主要是展示数组的大概学习内容,以及对一些难点和课堂作业进行演示,课堂的案例不演示。
可以认为索引数组是关联数组的子集, 一个分支
数组成员的类型,类型不受限制
数组的值如果是数组,就属于多维数组
foreach()还可以遍历对象
nature 自然
最后两个函数只能用于 php7.3+
<?php//与键相关的函数$arr = ['id' => '597826', 'name' => 'nicola', 'teacher' => 'peter zhu', 'course' => 'php'];$res = print_r(array_keys($arr), true);printf('<pre>%s</pre>', $res);//是否存在指定的键名echo '是否存在teacher这个键名?';var_dump(array_key_exists('teacher', $arr));//只能用于最新的php7.3+echo '<hr>';echo array_key_first($arr);echo '<hr>';echo array_key_last($arr);

//从数组中随机取出一个或者多个键名组成新的数组reset($arr);$arr = ['id' => '597826', 'name' => 'nicola', 'teacher' => 'peter zhu', 'course' => 'php'];echo '从数组中随机取出一个或者多个键名组成新的数组';echo '<br>';print_r(array_rand($arr, 2));echo '<hr>';//array_column()获取多维数组中的一列组成新的数组$arr = [['id' => '597826', 'name' => 'nicola', 'teacher' => 'peter zhu', 'course' => 'php'],['id' => '123', 'name' => '尼古拉', 'teacher' => '朱老师', 'course' => '编程'],['id' => '312321', 'name' => '尼古拉同学', 'teacher' => 'php中文网的朱老师', 'course' => 'php'],];$res = print_r($arr, true);printf('<pre>%s</pre>', $res);array_column($arr, 'teacher');$res = print_r(array_column($arr, 'teacher'), true);printf('<pre>%s</pre>', $res);echo '<hr>';// array_replace()使用第二个数组($a2)的值替换第一个数组($a1)的值:$arr1 = ['id' => '597826', 'name' => 'nicola'];$arr2 = ['id' => '1233', 'name' => '尼古拉'];$arr = array_replace($arr1, $arr2);$res = print_r($arr, true);printf('<pre>%s</pre>', $res);// array_replace_recursive()递归地使用第二个数组($a2)的值替换第一个数组($a1)的值:$a1 = ['id' => '597826', 'name' => ['尼古拉', '特斯拉']];$a2 = ['id' => '123456', 'name' => ['nicola']];$res1 = print_r($a1, true);echo '原始数组1';printf('<pre>%s</pre>', $res1);$res2 = print_r($a2, true);echo '原始数组2';printf('<pre>%s</pre>', $res2);$res = print_r(array_replace_recursive($a1, $a2), true);echo '递归后';printf('<pre>%s</pre>', $res);

<?phpfunction test1($var){return ($var);}//过滤返回的空值$a1 = ["a", "b", 2, 3, 4, '0'];$res = print_r(array_filter($a1, "test1"), true);printf('<pre>%s</pre>', $res);

//将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新值的数组:function myfunction($value){return ($value * $value);}$a = array(1, 2, 3, 4, 5);$res = print_r(array_map("myfunction", $a), true);printf('<pre>%s</pre>', $res);

// 求总和function myfunction2($v1, $v2){return $v1 + $v2;}$a = array(10, 15, 20);print_r(array_reduce($a, "myfunction2", 5));
不受数组指针影响
对数组中的每个元素应用用户自定义函数
function myfunction3($value, $key){echo "The key $key has the value $value<br>";}$a = ["a" => "red", "b" => "green", "c" => "blue"];array_walk($a, "myfunction3");

<?php$a = array("red", "green", "blue", "yellow", "brown");echo '原数组';printf('<pre>%s</pre>', print_r($a, true));$res = print_r(array_slice($a, 1, 2), true);echo '取出索引为1的,长度2的元素';printf('<pre>%s</pre>', $res);

<?php$a1 = array("a" => "red", "b" => "green", "c" => "blue", "d" => "yellow");$a2 = array("a" => "purple", "b" => "orange");echo '原数组';printf('<pre>%s</pre>', print_r($a1, true));array_splice($a1, 0, 2, $a2);$res = print_r($a1, true);echo '替换';printf('<pre>%s</pre>', $res);
array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。

在此,学习完了字符串函数和数组后,更加意识到了工作中需要经常对字符串和数组进行操作,PHP 数组是 PHP 必不可少的一部分,array 函数也有很重要的作用。很多功能可以通过自定义的函数实现,但是非常繁琐敲击一段函数,其实已经有系统函数可以实现这个目的,所以对函数的掌握程度不仅能够提高自己的知识积累,更能给自己未来开发项目省去大量的精力和提高效率。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号