
批改狀態(tài):合格
老師批語(yǔ):
鍵名相關(guān)處理函數(shù)
$arr=['id'=>'A','name'=>'ccc'];
// 1.1 key($arr) 輸出當(dāng)前鍵名
echo key($arr);
// 輸出結(jié)果是 id
// 1.2 next() 把指針移到數(shù)組下一個(gè)鍵
while(key($arr)){
$keys[]=key($arr);
next($arr);
}
echo '<br>';
print_r($arr);
echo '<br>';
// 輸出結(jié)果是 Array ( [id] => A [name] => ccc )
// 1.3 reset($arr) key指針復(fù)位
// 1.4 array_keys($arr) 返回?cái)?shù)組,數(shù)組成員是原數(shù)組的鍵名
print_r(array_keys($arr));
// Output: Array ( [0] => id [1] => name )
echo '<br>';
// array_values($arr) 返回鍵值數(shù)組,不返回鍵名
print_r(array_values($arr));
// Output:Array ( [0] => A [1] => ccc )
echo '<br>';
// in_array(),指定成員是否是數(shù)組成員的鍵值,鍵名不算
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() ,查找成員是否在數(shù)組中,如果存在返回鍵名,不存在返回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(),移除重復(fù)的值
$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(),返回?cái)?shù)組中成員的和:
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:返回?cái)?shù)組成員的積
var_dump(array_product([1,2,3,4]));
// output:24
數(shù)組的拆分和合并
// array_slice():從數(shù)組中去除一部分
$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(),修改原數(shù)組,可以增加,刪除,修改,插入
// 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() 將關(guān)聯(lián)數(shù)組拆分成多個(gè)變量
$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() 將變量組成關(guān)聯(lián)數(shù)組
echo 'compact()<br>';
print_r(compact('type','host','dbname','charset'));
echo '<br>';
棧和隊(duì)列
棧是一種特殊的線性表,只能夠在一頭添加.
我以前上課的時(shí)候,棧只能夠一端進(jìn)出.遵循后進(jìn)先出(Last In First Out,LIFO)的規(guī)則.把棧描述為一個(gè)下面不開(kāi)口的垂直容器譬如杯子,添加數(shù)據(jù)稱(chēng)為進(jìn)?;蛘呤菈簵?最后進(jìn)的最先出.使用的進(jìn)棧函數(shù)是 push(),出棧函數(shù)是 pop().
js 和 PHP 新增 unshift()和 shift()函數(shù).是用于在另一端操作的函數(shù).unshift()添加數(shù)據(jù),shift()移除數(shù)據(jù),稱(chēng)為 FIFO(First In First Out).
可以理解成 push()和 pop()操作棧頂,unshift()和 shift()操作棧底.
如下兩圖.頭部或者是底部對(duì)應(yīng)的是 arr[0],也就是下標(biāo)為零的數(shù)組元素.而尾部或者是頂部對(duì)應(yīng)的是數(shù)組指針最后的數(shù)組元素.
// 3. 棧和隊(duì)列
echo '<h2 style="color:red">棧和隊(duì)列</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 )
//printf系列函數(shù),格式化輸出函數(shù).
// s開(kāi)頭的printf只返回不輸出,v開(kāi)頭的printf參數(shù)是數(shù)組
//var_export()第二個(gè)參數(shù)為true時(shí)只返回不輸出
$dsn=sprintf('%s:hostname=%s;dbname=%s',$dbtype,$host,$dbname);
try{
$pdo=new PDO($dsn,$username,$password);
}catch(\Exception $e){
die($e->getMessage());
}
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)