键名相关处理函数
$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 false
var_dump(in_array('ccc',$arr));
// output:boolean true
var_dump(in_array('name',$arr));
// output:boolean false
// array_search() ,查找成员是否在数组中,如果存在返回键名,不存在返回false
var_dump(array_search('ccc',$arr));
//output: string 'name' (length=4)
var_dump(array_search('name',$arr));
//output:boolean false
echo '<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:10
var_dump(array_sum([1,2,3,4,'1a']));
// output:11
var_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:4
echo '<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:4
echo '<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:8
echo '<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:4
echo '<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:4
echo '<br>';
print_r($stack);
// output:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 )
echo '<br>';
echo array_pop($stack);
// output:5
echo '<br>';
print_r($stack);
// output:Array ( [0] => 1 [1] => 2 [2] => 3 )
- PDO数据库连接
PDO 数据库连接三要素:DSN 数据源,username,password.
数据库操作要用 trycatch 捕捉异常.//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());
}