PHP

[PHP] 陣列排序的方法

 

根據陣列值排序

Function name Maintains key association 順序 Related functions
array_multisort() associative yes, numeric no first array or sort options array_walk()
asort() yes 低到高 arsort()
arsort() yes 高到低 asort()
natcasesort() yes natural, case insensitive natsort()
natsort() yes natural natcasesort()
rsort() no 高到低 sort()
shuffle() no 隨機 array_rand()
sort() no 低到高 rsort()
uasort() yes 自定義 uksort()
usort() no 自定義 uasort()

 

讀取jpg檔的EXIF資訊

要讀取jpg檔的exif資訊,只要利用一個函式exif_read_data 就可以了,不過僅限於jpg或tiff的圖檔。

這個函式會回傳一個EXIF的陣列值,用法範例如下:

/**
* $filename : 檔名(含路徑)
* $sections : 可以僅擷取exif的部分內容,包含FILE,COMPUTED,ANY_TAG,IFDO,THUMBNAIL,COMMENT,EXIF
* $arrays   : 決定是否要以陣列形式回傳$sections指定的回傳值
* $thumbnail: 當設定為TRUE時,則讀取thumbnail
*/
array exif_read_data(string $filename [,string $sections=NULL [,bool $arrays=false [,bool $thumbnail=false]]])

 

[PHP] 數字補零

在PHP要讓數字自動補零的方法滿簡單的,基本上有兩種作法,分別利用sprintf()及str_pad()這兩個函數即可。

sprintf()

    $num = 1;
    $num2 = 1111;
    print sprintf("%03d", $num); //輸出 001
    print sprintf("%d", $num2);  //輸出 1111

 

str_pad()

    $num = 1;
    $num2 = 1111;
    print str_pad($num, 3, 0, STR_PAD_RIGHT); //輸出 100
    print str_pad($num, 3, 0, STR_PAD_LEFT);  //輸出 001
    print str_pad($num, 3, 0, STR_PAD_BOTH);  //輸出 010
    print str_pad($num, 3, 'a');              //輸出 1aa

[PHP] 陣列合併

要把陣列合併,需要用到 array_merge($a,$b) 這個函數,作法滿簡單的

 
 $a = array('1' , '2');
 $b = array('2' , '4');
 $c=array_merge($a,$b)    // 新的陣列 = array('1','2','2','4')

 

但如果要在合併後刪除重複的元素呢?這時候要多使用一個函數 array_unique()。

語法如下:

 $a = array('1' , '2');
 $b = array('2' , '4');
 $c=array_unique(array_merge($a,$b)); // $c=array('1','2','4')
附帶一提,若陣列元素為「物件」時,無法使用array_unique{} ;