Search code examples
phparraysarray-multisort

Multisort array in php


Need your professional help. I have array like this:

array(
    array('id'=>1, 'name'=>'b'), 
    array('id'=>2, 'name'=>'a'), 
    array('id'=>3, 'name'=>'c'));

Need to sort by name, but when I use ksort() or asort(), array sorts by id.

I tried use array_multisort() but this function not help me to.


Solution

  • we can use this function :

    <?php
        $hold = array(
            array('id'=>1, 'name'=>'b'), 
            array('id'=>2, 'name'=>'a'), 
            array('id'=>3, 'name'=>'c'));
    
    
        //array before sorting 
        var_dump($hold);
    
    
        function aasort (&$array, $key) {
            $sorter=array();
            $ret=array();
            reset($array);
            foreach ($array as $ii => $va) {
                $sorter[$ii]=$va[$key];
            }
            asort($sorter);
            foreach ($sorter as $ii => $va) {
                $ret[$ii]=$array[$ii];
            }
            $array=$ret;
        }
    
        aasort($hold,"name");
    
    
        //array after sorting 
        var_dump($hold);
    
    
        ?>