PHP Sort By Hand

Ví dụ ta có Array như sau:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => Ngô Thanh Hà 
            [2] => 13-Nov-1986
            [3] => Female
            [4] => ~~~~~~~~~~~~
            [5] => 46534556
            [6] => 01-Mar-2013
            [7] => Viewed
            [8] => 20130301125833
        )

    [1] => Array
        (
            [0] => 2
            [1] => 1000_lastname 1000_firstname
            [2] => 18-Oct-1979
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 23423234
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321135614
        )

    [2] => Array
        (
            [0] => 3
            [1] => 1_lastname 1_firstname
            [2] => 01-Jan-1970
            [3] => 
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321134709
        )

    [3] => Array
        (
            [0] => 4
            [1] => Pham Song
            [2] => 14-Dec-2012
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 13-Mar-2013
            [7] => Un-read
            [8] => 20130313145823
        )

)


Phần tử thứ 8 tương ứng với date, và phần tử 0 là số thứ tự. Ta muốn sort by phần tử thứ 8, ta viết như sau:

<?php
function sortByDate ($a, $b) {
    return $a[8] < $b[8];
}
usort($userExport, 'sortByDate');

Kết quả ta được như sau:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 1000_lastname 1000_firstname
            [2] => 18-Oct-1979
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 23423234
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321135614
        )

    [1] => Array
        (
            [0] => 3
            [1] => 1_lastname 1_firstname
            [2] => 01-Jan-1970
            [3] => 
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321134709
        )

    [2] => Array
        (
            [0] => 4
            [1] => Pham Song
            [2] => 14-Dec-2012
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 13-Mar-2013
            [7] => Un-read
            [8] => 20130313145823
        )

    [3] => Array
        (
            [0] => 1
            [1] => Ngô Thanh Hà 
            [2] => 13-Nov-1986
            [3] => Female
            [4] => ~~~~~~~~~~~~
            [5] => 46534556
            [6] => 01-Mar-2013
            [7] => Viewed
            [8] => 20130301125833
        )

)

Giá trị STT của ta vẫn chưa gán đúng, để gán đúng 1->2->3->4 ta phải foreach các items và set lại STT cho nó.

$i = 1;
foreach ($userExport as $item) {
    $item[0] = $i;
    unset($item[8]);
    $strDataResume[] = $item;
    $i++;
}

Kết quả cuối cùng như sau:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 1000_lastname 1000_firstname
            [2] => 18-Oct-1979
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 23423234
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321135614
        )

    [1] => Array
        (
            [0] => 2
            [1] => 1_lastname 1_firstname
            [2] => 01-Jan-1970
            [3] => 
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 21-Mar-2013
            [7] => Un-read
            [8] => 20130321134709
        )

    [2] => Array
        (
            [0] => 3
            [1] => Pham Song
            [2] => 14-Dec-2012
            [3] => Male
            [4] => ~~~~~~~~~~~~
            [5] => 
            [6] => 13-Mar-2013
            [7] => Un-read
            [8] => 20130313145823
        )

    [3] => Array
        (
            [0] => 4
            [1] => Ngô Thanh Hà 
            [2] => 13-Nov-1986
            [3] => Female
            [4] => ~~~~~~~~~~~~
            [5] => 46534556
            [6] => 01-Mar-2013
            [7] => Viewed
            [8] => 20130301125833
        )

)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s