Halo, nama saya Agung. Berasal dari Denpasar, Bali. Blog ini adalah blog harian saya, dari tips dan trick code, curahan hati, dan beberapa tulisan tidak penting.

Menu & Search

Array Count Group dan Multidimension Array Sort pada PHP

August 9, 2011

Misalkan kita memiliki array sebagai berikut, kemudian ingin di group dan kemudian di sort seperti command di mysql.

Array

(
    [0] => Array

        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 31
        )
    [1] => Array

        (
            [countryid] => US
            [countryname] => United States
            [totalaccess] => 23
        )
    [2] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 5
        )
    [3] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 2
        )
    [4] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 2
        )
    [5] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 1
        )
)

 

di group berdasarkan countryid dan di count totalaccess nya, sehingga menjadi

Array

(
    [ID] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 41
        )
    [US] => Array
        (
            [countryid] => US
            [countryname] => United States
            [totalaccess] => 23
        )
)

 

group menggunakan fungsi sebagai berikut :

function groupArray($result, $groupkey, $countkey)

{
	$finalresult = array();
	foreach($result as $res) 
	{
		$key = $res[$groupkey];
		if(!isset($finalresult[$key]))
		{
			$finalresult[$key] = $res;
		} else {
			$finalresult[$key][$countkey] = $finalresult[$key][$countkey] + $res[$countkey];
		}
	}

	return $finalresult;
}

 

kemudian di sort berdasarkan totalaccess

Array

(
    [0] => Array
        (
            [countryid] => US
            [countryname] => United States
            [totalaccess] => 23
        )
    [1] => Array
        (
            [countryid] => ID
            [countryname] => Indonesia
            [totalaccess] => 41
        )
)

 

sort menggunakan fungsi sebagai berikut :

function sortArray($a, $sortkey, $mode = "ASC")
{
	foreach($a as $k=>$v) 
	{
		$b[$k] = strtolower($v[$sortkey]);
	}

	if($mode == "ASC") asort($b);
	else arsort($b);

	foreach($b as $key=>$val) 
	{
		$c[] = $a[$key];
	}

	return $c;

}

 

Related article

Startup, dan Leverage dalam usaha

Kita tau belakangan ini banyak startup berguguran. Bahkan di sebuah…

Sekolah Anak

Beberapa hari lalu, istri bertanya kepada saya, kemana anak kami…

Istri, IRT atau Kerja atau Usaha?

Pernah ga cowo – cowo yang akan nikah berpikir, istri…

Discussion about this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Type your search keyword, and press enter to search