在php陣列學習摘錄部分了解到最基本的php陣列的建立和陣列元素的顯示。需要深入學習下php陣列的相關操作。首先接觸的就是陣列元素的公升序、降序的排序問題。
1、快速建立陣列的函式range()
比如range()函式可以快速建立從1到9的數字陣列:
<?php
$numbers=range(1,9);
echo$numbers[1];
?>
當然,使用range(9,1)則建立了9到1的數字陣列。同時,range()還可以建立從a到z的字元陣列:
<?php
$numbers=range(a,z);
foreach($numbersas$mychrs)
echo$mychrs."";
?>
使用字元陣列時注意大小寫,比如range(a,z)和range(a,z)是不一樣的。
range()函式還具有第三個引數,該引數的作用是設定步長,比如range(1,9,3)建立的陣列元素是:1、4、7
2、php中常規陣列的排序
一般陣列中的各元素均以字元或數字表現的,所以可對陣列元素進行公升序排列,該功能函式為sort()。比如:
<?php
$people=array('name','***','nation','birth');
foreach($peopleas$mychrs)
echo$mychrs."";
sort($people);
echo"
---排序後---
";foreach($peopleas$mychrs)
echo$mychrs."";
?>
公升序排序後的陣列元素顯示為birthnamenation***,當然,sort()函式是區分字母大小寫的(字母從大到小的順序是:a…z…a…z)
sort()函式還具有第二引數,用來說明公升序的規則是用來比較數字還是字串的。比如:
<?php
echo"---按數字公升序排序---
";$num2=array('26','3',);
sort($num2,sort_numeric);
foreach($num2as$mychrs)
echo$mychrs."";
echo"
---按字元公升序排序---
";$num3=array('26','3');
sort($num3,sort_string);
foreach($num3as$mychrs)
echo$mychrs."";
?>
sort_numeric和sort_string用來宣告按數字或字元的公升序排列。如果按照數字公升序排列是:3,26;但如果按照字元公升序排列則是:26,3了。
php中除了公升序函式以外,還有降序或稱反向排列的函式,就是rsort()函式,比如:
$num1=range(1,9);
rsort($num1);
這裡其實就相當於range(9,1)
3、php中關聯陣列的排序
php除了支援數字索引陣列以外,還支援相關陣列。比如如下陣列就是乙個相關(關聯)陣列:
$peoples=array('xm'=>'name','xb'=>'***','mz'=>'nation','cs'=>'birth');
使用sort($peoples)預設即是按照元素定義值的公升序排序,在關聯陣列中可使用asort()函式表示,關聯陣列中最主要的則是可按照關鍵字(如xm、xb、mz等)的公升序排序,該方法是用函式ksort()函式。
<?php
$peoples=array('xm'=>'name','xb'=>'***','mz'=>'nation','cs'=>'birth');
foreach($peoplesas$mychrs)
echo$mychrs."";
echo"
--按元素值公升序排列--
";asort($peoples);
foreach($peoplesas$mychrs)
echo$mychrs."";
echo"
--按關鍵字公升序排列--
";ksort($peoples);
foreach($peoplesas$mychrs)
echo$mychrs."";
?>
和常規陣列擁有sort()公升序函式的反向排序rsort()降序
函式相對應的,關聯陣列也有對應的降序
函式:asort()函式和arsort()函式、ksort()函式和krsort()函式。
記憶:原型函式是sort(),其中a、k表示關聯陣列相關必須前置,反向排序使用r修飾。
4、php陣列元素隨機排序
php中使用shuffle()函式將陣列元素進行隨機的重新排序,比如:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);
foreach($feras$mychrs)
echo$mychrs."";
?>
每次都會顯示不同的排序組合
5、php陣列按原順序反向排序
php中可使用array_reverse()函式將陣列元素按原順序反向排序。比如:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach($feras$mychrs)
echo$mychrs."";
$fer=array_reverse($fer);
echo"
--按原順序反向--
";foreach($feras$mychrs)
echo$mychrs."";
?>
cnbrucecnrosecnjamescnanne
--按原順序反向--
cnannecnjamescnrosecnbruce
注意這裡的$fer=array_reverse($fer);在此之前的任何排序函式均只是宣告引用,並沒有對原有陣列進行重新定義,但當我除錯該函式時則需要重新定義。這是因為array_reverse()是返回原陣列修改後的副本,如果不需要原有陣列,可對原陣列重新定義達到覆蓋的目的,否則就另外定義陣列儲存副本,比如:$fer_bak=array_reverse($fer);
PHP中陣列元素公升序 降序及重新排序的函式
在php陣列學習摘錄部分了解到最基本的php陣列的建立和陣列元素的顯示。需要深入學習下php陣列的相關操作。首先接觸的就是陣列元素的公升序 降序的排序問題。1 快速建立陣列的函式range 比如range 函式可以快速建立從1到array的數字陣列 以下為引用的內容 numbers range 1,...
iOS iOS之陣列的排序(公升序 降序及亂序)
nsmutablearray pricearray nsmutablearray arraywithobjects 0.2 5 44 67 98.5 1.55 nil pricearray sortusingcomparator nscomparisonresult id nonnull obj1,...
php陣列中刪除元素,再重新索引
之前如果要在某個陣列中刪除乙個元素,我是直接用的unset,也不管unset之後會發生什麼。但今天看到的東西卻讓我大吃一驚 arr array a b c d unset arr 1 print r arr print r arr 之後,結果卻不是那樣的,最終結果是 array 0 a 2 c 3 ...