Sort array of objects by object fields

后端 未结 19 1842
情书的邮戳
情书的邮戳 2020-11-22 02:28

How can I sort this array of objects by one of its fields, like name or count ?

  Array
(
    [0] => stdClass Object
        (
          


        
19条回答
  •  野的像风
    2020-11-22 03:01

    reference answer of Demodave to eating multi key

     function array_sort_by(array $arr, $keys){
    
        if(!is_array($keys))
            $keyList = explode(',', $keys);
        $keyList = array_keys(array_flip($keyList)); // array_unique 
        $keyList = array_reverse($keyList);
    
        $result = &$arr;
        foreach ($keyList as $key) {
            if(array_key_exists($key, $arr))
                $result = usort($result, function($a, $b) use ($key) { return strcmp($a->{$key}, $b->{$key}); });
        }
        return $result;
    }
    

提交回复
热议问题