Halo, nama saya Agung. Berasal dari Denpasar, Bali. Blog ini adalah blog harian saya, dari curahan hati, dan beberapa tulisan untuk catatan pribadi

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

Tentang Warisan

Warisan, sering kali menjadi sebuah momok dalam kehidupan banyak masyarakat…

Tiering Aset

Selama ini cara orang berpikir tentang investasi hampir selalu tentang…

Tentang Tanah

Tanpa disadari, portfolio saya sangat terkonsentrasi dan condong ke tanah.…

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