php 數(shù)組的指針操作實(shí)現(xiàn)代碼
更新時(shí)間:2011年02月08日 18:24:06 作者:
php 數(shù)組的指針操作實(shí)現(xiàn)代碼,數(shù)組在php編寫中是非常重要的操作,學(xué)習(xí)php的朋友可以參考下。
/**
* 將數(shù)組的內(nèi)部指針倒回一位
* @param array &$arr
* @return mixed 返回前一個(gè)單元的值,當(dāng)沒有更多單元時(shí)返回 FALSE
* 如果數(shù)組包含空的單元,或者單元的值是 0 則本函數(shù)碰到這些單元也返回 FALSE
* 要正確遍歷可能含有空單元或者單元值為 0 的數(shù)組,參見 each() 函數(shù)
*/
mixed prev(array &$arr);
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
$mode = reset($transport) ;//$mode = 'foot';
?>
array("key"=>"value");建立數(shù)組
//顯示數(shù)組
print_r($array);
//使用compact()函數(shù)新建數(shù)組,并把參數(shù)做為新數(shù)組的單元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函數(shù)把數(shù)組中的單元轉(zhuǎn)換為變量
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";
※檢查值、鍵
array_key_exists($key,$array);//檢查數(shù)組鍵
in_array($value,$array);//檢查值于數(shù)組
※獲取值
//使用array_values()取得數(shù)組的值
$carValues = array_values($car);
//取出數(shù)組的鍵名
$twoKeys = array_keys($two);
key($array);//輸出當(dāng)前單元的鍵名
//數(shù)組定義后,使用current()取得當(dāng)前單元的值
$red = current($array);
list($red,$green) = $array;//把數(shù)組中的值賦與變量,$array = array("紅色","綠色");
each($two);//返回?cái)?shù)組中當(dāng)前單元的鍵和值
※遍歷數(shù)組
foreach($two as $subArray);//遍歷數(shù)組
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍歷數(shù)組
}
※填充數(shù)組
//向左、右填充數(shù)組
array_pad($array,+3,"shuzhi");//2參數(shù)為正從左往右填充,數(shù)值大于單元數(shù)時(shí)才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充這個(gè)數(shù)組的值,值為test,從第5個(gè)單元開始填充,一共填充5個(gè)單元
//填充數(shù)組鍵名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"數(shù)組值");
//使用array_filp()函數(shù)交換鍵名與值
$speed = array_flip($speed);
//使用array_splice()函數(shù)替換第6個(gè)單元的值為7
$output = array_splice($input,6,0,7);
//使用array_splice()函數(shù)刪除數(shù)組單元,只保留前5個(gè)單元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函數(shù)的第三個(gè)參數(shù),設(shè)置單元之間的步進(jìn)值
※排序
shuffle($array);//將數(shù)組順序打亂
//使用array_multisort()對(duì)三個(gè)數(shù)組排序
array_multisort($sort1,$sort2,$sort3);
//把這個(gè)數(shù)組進(jìn)行排序,并保持索引關(guān)系
asort($array);
//把測(cè)試數(shù)組進(jìn)行逆向排序,并保持索引關(guān)系
arsort($array);
//使用ksort()對(duì)數(shù)組按鍵名排序
ksort($array);
//使用krsort()函數(shù)按鍵名逆向排序
krsort($array);
//使用sort()對(duì)測(cè)試數(shù)組進(jìn)行排序[以鍵名排列]
sort($array);
//使用natsort()排序[自然排序,以數(shù)值排列]對(duì)單元數(shù)值大小寫敏感
natsort($array);
//使用natcasesort()函數(shù)排序[自然排序]但是忽略數(shù)值大小寫
natcasesort($array);
//使用array_reverse()函數(shù)排序,數(shù)組單元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE設(shè)時(shí)保留原鍵名
※交集、差集
//使用array_diff()計(jì)算三個(gè)數(shù)組的差集[對(duì)數(shù)組數(shù)值比較]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()計(jì)算三個(gè)數(shù)組的差集[對(duì)數(shù)值和鍵名比較]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()計(jì)算三個(gè)數(shù)組的差集[比較鍵名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()計(jì)算三個(gè)數(shù)組的交集[對(duì)數(shù)組數(shù)值比較]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()計(jì)算三個(gè)數(shù)組的交集[對(duì)數(shù)值和鍵名比較]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()計(jì)算三個(gè)數(shù)組的交集[比較鍵名]
$result = array_intersect_key($dog1,$dog2,$dog3);
※合并數(shù)組
//使用array_merge()函數(shù)合并數(shù)組
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//隨機(jī)取出10個(gè)單元
count($array,COUNT_RECURSIVE);//顯示數(shù)組單元數(shù)目,2參數(shù)只可為1或者COUNT_RECURSIVE,有時(shí)可遍歷多維數(shù)組
※出入棧
//數(shù)組出棧,后進(jìn)先出,數(shù)組最后一個(gè)單元彈出
array_pop($array);
//數(shù)組入棧,將7,8兩個(gè)數(shù)值添加到數(shù)組尾部
array_push($array,7,8);
//將數(shù)組開頭單元移出數(shù)組
array_shift($array);
//將7,8添加入數(shù)組開頭
array_unshift($array,7,8);
* 將數(shù)組的內(nèi)部指針倒回一位
* @param array &$arr
* @return mixed 返回前一個(gè)單元的值,當(dāng)沒有更多單元時(shí)返回 FALSE
* 如果數(shù)組包含空的單元,或者單元的值是 0 則本函數(shù)碰到這些單元也返回 FALSE
* 要正確遍歷可能含有空單元或者單元值為 0 的數(shù)組,參見 each() 函數(shù)
*/
mixed prev(array &$arr);
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
$mode = reset($transport) ;//$mode = 'foot';
?>
array("key"=>"value");建立數(shù)組
//顯示數(shù)組
print_r($array);
//使用compact()函數(shù)新建數(shù)組,并把參數(shù)做為新數(shù)組的單元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函數(shù)把數(shù)組中的單元轉(zhuǎn)換為變量
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";
※檢查值、鍵
array_key_exists($key,$array);//檢查數(shù)組鍵
in_array($value,$array);//檢查值于數(shù)組
※獲取值
//使用array_values()取得數(shù)組的值
$carValues = array_values($car);
//取出數(shù)組的鍵名
$twoKeys = array_keys($two);
key($array);//輸出當(dāng)前單元的鍵名
//數(shù)組定義后,使用current()取得當(dāng)前單元的值
$red = current($array);
list($red,$green) = $array;//把數(shù)組中的值賦與變量,$array = array("紅色","綠色");
each($two);//返回?cái)?shù)組中當(dāng)前單元的鍵和值
※遍歷數(shù)組
foreach($two as $subArray);//遍歷數(shù)組
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍歷數(shù)組
}
※填充數(shù)組
//向左、右填充數(shù)組
array_pad($array,+3,"shuzhi");//2參數(shù)為正從左往右填充,數(shù)值大于單元數(shù)時(shí)才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充這個(gè)數(shù)組的值,值為test,從第5個(gè)單元開始填充,一共填充5個(gè)單元
//填充數(shù)組鍵名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"數(shù)組值");
//使用array_filp()函數(shù)交換鍵名與值
$speed = array_flip($speed);
//使用array_splice()函數(shù)替換第6個(gè)單元的值為7
$output = array_splice($input,6,0,7);
//使用array_splice()函數(shù)刪除數(shù)組單元,只保留前5個(gè)單元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函數(shù)的第三個(gè)參數(shù),設(shè)置單元之間的步進(jìn)值
※排序
shuffle($array);//將數(shù)組順序打亂
//使用array_multisort()對(duì)三個(gè)數(shù)組排序
array_multisort($sort1,$sort2,$sort3);
//把這個(gè)數(shù)組進(jìn)行排序,并保持索引關(guān)系
asort($array);
//把測(cè)試數(shù)組進(jìn)行逆向排序,并保持索引關(guān)系
arsort($array);
//使用ksort()對(duì)數(shù)組按鍵名排序
ksort($array);
//使用krsort()函數(shù)按鍵名逆向排序
krsort($array);
//使用sort()對(duì)測(cè)試數(shù)組進(jìn)行排序[以鍵名排列]
sort($array);
//使用natsort()排序[自然排序,以數(shù)值排列]對(duì)單元數(shù)值大小寫敏感
natsort($array);
//使用natcasesort()函數(shù)排序[自然排序]但是忽略數(shù)值大小寫
natcasesort($array);
//使用array_reverse()函數(shù)排序,數(shù)組單元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE設(shè)時(shí)保留原鍵名
※交集、差集
//使用array_diff()計(jì)算三個(gè)數(shù)組的差集[對(duì)數(shù)組數(shù)值比較]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()計(jì)算三個(gè)數(shù)組的差集[對(duì)數(shù)值和鍵名比較]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()計(jì)算三個(gè)數(shù)組的差集[比較鍵名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()計(jì)算三個(gè)數(shù)組的交集[對(duì)數(shù)組數(shù)值比較]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()計(jì)算三個(gè)數(shù)組的交集[對(duì)數(shù)值和鍵名比較]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()計(jì)算三個(gè)數(shù)組的交集[比較鍵名]
$result = array_intersect_key($dog1,$dog2,$dog3);
※合并數(shù)組
//使用array_merge()函數(shù)合并數(shù)組
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//隨機(jī)取出10個(gè)單元
count($array,COUNT_RECURSIVE);//顯示數(shù)組單元數(shù)目,2參數(shù)只可為1或者COUNT_RECURSIVE,有時(shí)可遍歷多維數(shù)組
※出入棧
//數(shù)組出棧,后進(jìn)先出,數(shù)組最后一個(gè)單元彈出
array_pop($array);
//數(shù)組入棧,將7,8兩個(gè)數(shù)值添加到數(shù)組尾部
array_push($array,7,8);
//將數(shù)組開頭單元移出數(shù)組
array_shift($array);
//將7,8添加入數(shù)組開頭
array_unshift($array,7,8);
您可能感興趣的文章:
- PHP中使用數(shù)組指針函數(shù)操作數(shù)組示例
- php數(shù)組函數(shù)序列之next() - 移動(dòng)數(shù)組內(nèi)部指針到下一個(gè)元素的位置,并返回該元素值
- php數(shù)組函數(shù)序列之each() - 獲取數(shù)組當(dāng)前內(nèi)部指針?biāo)赶蛟氐逆I名和鍵值,并將指針移到下一位
- php數(shù)組函數(shù)序列之prev() - 移動(dòng)數(shù)組內(nèi)部指針到上一個(gè)元素的位置,并返回該元素值
- php數(shù)組指針操作詳解
- php數(shù)組函數(shù)序列之end() - 移動(dòng)數(shù)組內(nèi)部指針到最后一個(gè)元素,并返回該元素的值
- php reset() 函數(shù)指針指向數(shù)組中的第一個(gè)元素并輸出實(shí)例代碼
- PHP數(shù)組遍歷知識(shí)匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測(cè)速)
- 簡(jiǎn)單了解PHP編程中數(shù)組的指針的使用
- php數(shù)組指針函數(shù)功能及用法示例
相關(guān)文章
Mysql中l(wèi)imit的用法方法詳解與注意事項(xiàng)
mysql的數(shù)據(jù)一般都是用limit控制數(shù)量,它的使用方法也是需要注意的。2008-04-04- 現(xiàn)在很多網(wǎng)站都存在跨站腳本攻擊漏洞,讓黑客有機(jī)可乘.跨站攻擊很容易就可以構(gòu)造,而且非常隱蔽,不易被查覺(通常盜取信息后馬上跳轉(zhuǎn)回原頁(yè)面)。如何攻擊,在此不作介紹,主要談?wù)勅绾畏婪丁?/div> 2015-09-09
PHP實(shí)現(xiàn)預(yù)定義鉤子和自定義鉤子的簡(jiǎn)單示例
這篇文章主要給大家介紹了PHP實(shí)現(xiàn)預(yù)定義鉤子和自定義鉤子,在PHP中,鉤子(Hooks)是一種機(jī)制,允許開發(fā)人員在特定的時(shí)機(jī)插入自定義代碼,通過使用鉤子,開發(fā)人員可以在應(yīng)用程序的特定事件發(fā)生時(shí)執(zhí)行自定義的功能或邏輯,文中有詳細(xì)的代碼講解,需要的朋友可以參考下2023-11-11PHP+AJAX實(shí)現(xiàn)無(wú)刷新注冊(cè)(帶用戶名實(shí)時(shí)檢測(cè))
PHP+AJAX實(shí)現(xiàn)無(wú)刷新注冊(cè)(帶用戶名實(shí)時(shí)檢測(cè))...2007-01-01ThinkPHP中公共函數(shù)路徑和配置項(xiàng)路徑的映射分析
這篇文章主要介紹了ThinkPHP中公共函數(shù)路徑和配置項(xiàng)路徑的映射,較為通俗的分析了ThinkPHP中公共函數(shù)路徑和配置項(xiàng)路徑的映射關(guān)系與對(duì)應(yīng)修改位置,有助于更好的理解ThinkPHP底層代碼原理,需要的朋友可以參考下2014-11-11PHP中應(yīng)該避免使用同名變量(拆分臨時(shí)變量)
這篇文章主要介紹了PHP中應(yīng)該避免使用同名變量(拆分臨時(shí)變量),當(dāng)一個(gè)臨時(shí)變量被賦值多次時(shí),那么將其拆分成多個(gè),除非它是一個(gè)循環(huán)計(jì)數(shù)器,需要的朋友可以參考下2015-04-04最新評(píng)論