批改状态:合格
老师批语:php中的数组功能非常强大, 每多知道一个数组, 就相当于多了一种杀敌的武器
1.索引数组:
默认从0开始编号
$goods = ['001', '智能手机', '华为', '2568'];printf('<pre>%s</pre>',print_r($goods, true));echo $goods[2];
2.关联数组:
$goods = ['id'=>'001', 'name'=>'智能手机', 'model'=>'华为', 'price'=>'2568'];printf('<pre>%s</pre>',print_r($goods, true));echo $goods['name'];
逐个遍历,也叫数组指针
current(): 值
key(): 键
$stu = ['id' => '001','name' => '张三','age' => 18,'grade' => 78,];// next($stu):指针下移一位,指向下一个元素next($stu);printf('[ %s ] => %s', key($stu), current($stu));next($stu);printf('[ %s ] => %s', key($stu), current($stu));// prev($stu): 指针前移prev($stu);printf('[ %s ] => %s', key($stu), current($stu));// reset($stu): 指针复位reset($stu);printf('[ %s ] => %s', key($stu), current($stu));
foreach():自动生成
可以省去手工步骤
foreach ($stu as $value) {echo $value;}
键名函数:
$arr = ['id'=>001, 'name'=>'张三', 'email'=>'zhangsan@qq.cn'];function array_keys_2($arr) {$keys = [];while ($key=key($arr)){$keys[] = $key;next($arr);}return $keys;}// array_keys():直接返回键名组成的数组print_r(array_keys_2($arr));
和值相关的的函数:
array_search():在数组中查找指定的元素
array_unique():去掉重复的
$arr = [3 => 10, 9 => 20, 0 => 'html', 'id' => 'css', 20 => 20,30];printf('<pre>%s</pre>',print_r($arr,true));function array_values_1($arr) {$values = [];foreach ($arr as $value) {$values[] = $value;}return $values;}printf('<pre>%s</pre>',print_r(array_values($arr),true));var_dump(array_search('css', $arr));print_r(array_unique($arr));
数组求和
array_sum: 数组求和
$arr = [10,20,30,55,11];function array_sum_1(...$arr) {$sum = 0;foreach ($arr as $c) {$sum += $c;}return $sum;}echo array_sum($arr);
栈
仅允许在数组一段进行新增或删除的操作,后进先出
$stack = [];// 在尾部操作// array_push():元素进栈echo array_push($stack, 10);echo array_push($stack, 30);echo array_push($stack, 50, 70);// array_pop:元素出栈echo array_pop($stack);echo array_pop($stack);printf('<pre>%s</pre>', print_r($stack, true));// 在头部操作// array_unshift():元素进栈echo array_unshift($stack, 'css');printf('<pre>%s</pre>', print_r($stack, true));// array_shift()元素出栈echo array_shift($stack);printf('<pre>%s</pre>', print_r($stack, true));
array_slice()
从数组中取出一部分元素
$stu = ['id' => 201, 'name' => '张三丰', 'age' => '50'];// 取出第一个$res = array_slice($stu, 0,1);// 如果想取倒数的就只需要负数就可以了printf('<pre>%s</pre>',print_r($res,true));
array_splice()
删除元素,但是可以利用这个功能实现增加
返回值就是被删除的元素组成的数组
$arr = [10, 20, 30, 55, 66, 77, 40, 66];printf('<pre>%s</pre>',print_r($arr,true));// 删除$res = array_splice($arr,3, 2);printf('<pre>%s</pre>',print_r($res,true));// 增加$res = array_splice($arr,3, 2, [147,369]);printf('<pre>%s</pre>',print_r($res,true));printf('<pre>%s</pre>',print_r($arr,true));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号