php 數組的指標操作實現代碼

來源:互聯網
上載者:User

/**
* 將數組的內部指標倒回一位
* @param array &$arr
* @return mixed 返回前一個單元的值,當沒有更多單元時返回 FALSE
* 如果數組包含空的單元,或者單元的值是 0 則本函數碰到這些單元也返回 FALSE
* 要正確遍曆可能含有空單元或者單元值為 0 的數組,參見 each() 函數
*/
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");建立數組
//顯示數組
print_r($array);
//使用compact()函數建立數組,並把參數做為新數組的單元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函數把數組中的單元轉換為變數
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";

※檢查值、鍵
array_key_exists($key,$array);//檢查數組鍵
in_array($value,$array);//檢查值於數組

※擷取值
//使用array_values()取得數組的值
$carValues = array_values($car);
//取出數組的鍵名
$twoKeys = array_keys($two);
key($array);//輸出當前單元的鍵名
//數組定義後,使用current()取得當前單元的值
$red = current($array);
list($red,$green) = $array;//把數組中的值賦與變數,$array = array("紅色","綠色");
each($two);//返回數組中當前單元的鍵和值

※遍曆數組
foreach($two as $subArray);//遍曆數組
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍曆數組
}

※填充數組
//向左、右填充數組
array_pad($array,+3,"shuzhi");//2參數為正從左往右填充,數值大於單元數時才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充這個數組的值,值為test,從第5個單元開始填充,一共填充5個單元
//填充數組鍵名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"數組值");
//使用array_filp()函數交換鍵名與值
$speed = array_flip($speed);
//使用array_splice()函數替換第6個單元的值為7
$output = array_splice($input,6,0,7);
//使用array_splice()函數刪除數組單元,只保留前5個單元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函數的第三個參數,設定單元之間的步進值

※排序
shuffle($array);//將數組順序打亂
//使用array_multisort()對三個數組排序
array_multisort($sort1,$sort2,$sort3);
//把這個數組進行排序,並保持索引關係
asort($array);
//把測試數組進行逆向排序,並保持索引關係
arsort($array);
//使用ksort()對數組按鍵名排序
ksort($array);
//使用krsort()函數按鍵名逆向排序
krsort($array);
//使用sort()對測試數組進行排序[以鍵名排列]
sort($array);
//使用natsort()排序[自然排序,以數值排列]對單元數值大小寫敏感
natsort($array);
//使用natcasesort()函數排序[自然排序]但是忽略數值大小寫
natcasesort($array);
//使用array_reverse()函數排序,數組單元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE設時保留原鍵名

※交集、差集
//使用array_diff()計算三個數組的差集[對數組數值比較]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()計算三個數組的差集[對數值和鍵名比較]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()計算三個數組的差集[比較鍵名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()計算三個數組的交集[對數組數值比較]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()計算三個數組的交集[對數值和鍵名比較]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()計算三個數組的交集[比較鍵名]
$result = array_intersect_key($dog1,$dog2,$dog3);

※合并數組
//使用array_merge()函數合并數組
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//隨機取出10個單元
count($array,COUNT_RECURSIVE);//顯示數組單元數目,2參數只可為1或者COUNT_RECURSIVE,有時可遍曆多維陣列

※出入棧
//數組出棧,後進先出,數組最後一個單元彈出
array_pop($array);
//數組入棧,將7,8兩個數值添加到數組尾部
array_push($array,7,8);
//將數組開頭單元移出數組
array_shift($array);
//將7,8添加入數組開頭
array_unshift($array,7,8);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.