批改状态:合格
老师批语:
键名相关处理函数
$arr=['id'=>'A','name'=>'ccc'];// 1.1 key($arr) 输出当前键名echo key($arr);// 输出结果是 id// 1.2 next() 把指针移到数组下一个键while(key($arr)){$keys[]=key($arr);next($arr);}echo '<br>';print_r($arr);echo '<br>';// 输出结果是 Array ( [id] => A [name] => ccc )// 1.3 reset($arr) key指针复位// 1.4 array_keys($arr) 返回数组,数组成员是原数组的键名print_r(array_keys($arr));// Output: Array ( [0] => id [1] => name )echo '<br>';// array_values($arr) 返回键值数组,不返回键名print_r(array_values($arr));// Output:Array ( [0] => A [1] => ccc )echo '<br>';// in_array(),指定成员是否是数组成员的键值,键名不算var_dump(in_array('css',$arr));// output:boolean falsevar_dump(in_array('ccc',$arr));// output:boolean truevar_dump(in_array('name',$arr));// output:boolean false// array_search() ,查找成员是否在数组中,如果存在返回键名,不存在返回falsevar_dump(array_search('ccc',$arr));//output: string 'name' (length=4)var_dump(array_search('name',$arr));//output:boolean falseecho '<br>';// array_unique(),移除重复的值$age=array_unique([1,2,3,4,5,6,7,8,4,5,6,7,8,9,10]);print_r($age);echo '<br>';// output:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [13] => 9 [14] => 10 )print_r(array_values($age));//output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 )// array_sum(),返回数组中成员的和:var_dump(array_sum([1,2,3,4]));// output:10var_dump(array_sum([1,2,3,4,'1a']));// output:11var_dump(array_sum([1,2,3,4,'a1']));//output:10// array_product:返回数组成员的积var_dump(array_product([1,2,3,4]));// output:24
数组的拆分和合并
// array_slice():从数组中去除一部分$stu=['id'=>101,'name'=>'ccc','age'=>60,'course'=>'php'];print_r($stu);echo '<br>';print_r(array_slice($stu,-2,2));// output:Array ( [age] => 60 [course] => php )echo '<br>';// array_splice(),修改原数组,可以增加,删除,修改,插入// array_splice()删除$arr=[1,2,3,4,5,5];var_dump($arr);print_r(array_splice($arr,1,2));// output:Array ( [0] => 2 [1] => 3 )echo '<br>';print_r($arr);// output: Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 5 )echo '<br>';echo 'array_splice()替换'.'<br>';$arr=[1,2,3,4,5,6];print_r($arr);echo '<br>';// output:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )// array_splice()替换print_r(array_splice($arr,1,2,[888,999]));// output:Array ( [0] => 2 [1] => 3 )echo '<br>';print_r($arr);// output:Array ( [0] => 1 [1] => 888 [2] => 999 [3] => 4 [4] => 5 [5] => 6 )echo '<br>';// array_splice()新增print_r(array_splice($arr,1,0,[222,333]));// output:Array ( )echo '<br>';print_r($arr);// output:Array ( [0] => 1 [1] => 222 [2] => 333 [3] => 888 [4] => 999 [5] => 4 [6] => 5 [7] => 6 )echo '<br>extract()'.'<br>';// extract() 将关联数组拆分成多个变量$config=['type'=>'mysql','host'=>'localhost','dbname'=>'phpedu','charset'=>'utf8'];echo extract($config);// output:4echo '<br>';echo "type:$type|host:$host|dbname:$dbname|charset:$charset".'<br>';// output:type:mysql|host:localhost|dbname:phpedu|charset:utf8// compact() 将变量组成关联数组echo 'compact()<br>';print_r(compact('type','host','dbname','charset'));echo '<br>';
栈和队列
栈是一种特殊的线性表,只能够在一头添加.
我以前上课的时候,栈只能够一端进出.遵循后进先出(Last In First Out,LIFO)的规则.把栈描述为一个下面不开口的垂直容器譬如杯子,添加数据称为进栈或者是压栈.最后进的最先出.使用的进栈函数是 push(),出栈函数是 pop().
js 和 PHP 新增 unshift()和 shift()函数.是用于在另一端操作的函数.unshift()添加数据,shift()移除数据,称为 FIFO(First In First Out).
可以理解成 push()和 pop()操作栈顶,unshift()和 shift()操作栈底.
如下两图.头部或者是底部对应的是 arr[0],也就是下标为零的数组元素.而尾部或者是顶部对应的是数组指针最后的数组元素.

// 3. 栈和队列echo '<h2 style="color:red">栈和队列</h2>'.'<br>';$stack=[1,2,3];// 栈的头部增加print_r(array_unshift($stack,4));// output:4echo '<br>';print_r($stack);// output: Array ( [0] => 4 [1] => 1 [2] => 2 [3] => 3 )echo '<br>';print_r(array_unshift($stack,4,5,6,7));// output:8echo '<br>';print_r($stack);// output:Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 7 [4] => 4 [5] => 1 [6] => 2 [7] => 3 )echo '<br>';echo array_shift($stack);// output:4echo '<br>';print_r($stack);// output:Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 4 [4] => 1 [5] => 2 [6] => 3 )echo '<br>';$stack=[];print_r($stack);// output:Array ( )echo '<br>';print_r(array_push($stack,1,2,3,5));// output:4echo '<br>';print_r($stack);// output:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 )echo '<br>';echo array_pop($stack);// output:5echo '<br>';print_r($stack);// output:Array ( [0] => 1 [1] => 2 [2] => 3 )
//printf系列函数,格式化输出函数.// s开头的printf只返回不输出,v开头的printf参数是数组//var_export()第二个参数为true时只返回不输出$dsn=sprintf('%s:hostname=%s;dbname=%s',$dbtype,$host,$dbname);try{$pdo=new PDO($dsn,$username,$password);}catch(\Exception $e){die($e->getMessage());}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号