跳到主要內容

自己定義的陣列排序 - PHP

自己定義的陣列排續,不外乎就是以下三個函數:usortuasortuksort

以下是完整的程式碼
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
/** 初始資料設定 **/
$id = array(0=>'#0001',1=>'#0002');
//給usort測試的陣列
$u_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差');
$u_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差');
//給uasort測試的陣列
$ua_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差');
$ua_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差');
//給uksort測試的陣列
$uk_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差');
$uk_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差');


/** 自己定義的函式 **/
function mySort($arr1, $arr2){
    return substr_compare($arr1['date'], $arr2['date'], 0);
}

/** 進行usort **/
usort($u_data , 'mySort');
/** 印出陣列 **/
print_r($u_data);

/** 進行uasort **/
uasort($ua_data , 'mySort');
/** 印出陣列 **/
print_r($ua_data);

/** 進行uksort **/
uksort($uk_data , 'mySort');
/** 印出陣列 **/
print_r($uk_data);
?>

以下是印出結果
Array
(
    [0] => Array
        (
            [date] => 2012-08-12
            [note] => 上海出差
        )

    [1] => Array
        (
            [date] => 2012-08-17
            [note] => 北京出差
        )

)
Array
(
    [#0001] => Array
        (
            [date] => 2012-08-12
            [note] => 上海出差
        )

    [#0002] => Array
        (
            [date] => 2012-08-17
            [note] => 北京出差
        )

)
Array
(
    [#0002] => Array
        (
            [date] => 2012-08-17
            [note] => 北京出差
        )

    [#0001] => Array
        (
            [date] => 2012-08-12
            [note] => 上海出差
        )

)

看到結果,應該很明瞭的看的出來,uasort 跟 uksort 會保留陣列裡的 keys,所以就依照自己的需求寫屬於自己的排序 function 吧!

留言

這個網誌中的熱門文章

What is phpize

What is phpize According to the PHP official document : The phpize command is used to prepare the build environment for a PHP extension. If you need to build such an extension that from github or another code repositories, you can use  build tools to perform the build manually. 

判斷是不是json格式 - PHP

<?php /** * Check the string is json * * @param string $str * @return bool * @throws Exception if the string is not json */ function isJson ( $str ) { json_decode ( $str ); $code = json_last_error (); switch ( $code ) { case JSON_ERROR_NONE: return true ; case JSON_ERROR_DEPTH: throw new Exception( "Maximum stack depth exceeded" ); case JSON_ERROR_STATE_MISMATCH: throw new Exception( "Underflow or the modes mismatch" ); case JSON_ERROR_CTRL_CHAR: throw new Exception( "Unexpected control character found" ); case JSON_ERROR_SYNTAX: throw new Exception( "Syntax error, malformed JSON" ); case JSON_ERROR_UTF8: throw new Exception( "Malformed UTF-8 characters, possibly incorrectly encoded" ); default : throw new Exception( "U...

Android開啟Facebook App

如果手機裡已經安裝了Facebook,為什麼還要開啟瀏覽器重新輸入帳密呢? 直接用Facebook操作不是比較方便呢? --以上是前言--XD 所以為了方便已經安裝Facebook使用者,所以App裡開啟粉絲專頁時,應該會有兩種方式 範例如下: ... public static void openFacebookPage (Context context, String id) { Intent intent = null ; try { context. getPackageManager (). getPackageInfo ( "com.facebook.katana" , 0 ); String uri = "fb://page/" + id; intent = new Intent(Intent. ACTION_VIEW , Uri. parse (uri)); } catch (Exception e) { String uri = "https://www.facebook.com/pages/1/" + id; intent = new Intent(Intent. ACTION_VIEW , Uri. parse (uri)); } context. startActivity (intent); } ... 參考資料: android - launch facebook app from other app - Stack Overflow php - Facebook API - How do I get a Facebook user's profile image through the Facebook API (without requiring the user to "Allow" the applicati...