fork download
  1. <?php
  2.  
  3. // from http://p...content-available-to-author-only...p.net/manual/de/function.ksort.php#109398
  4. function array_reorder_keys($array, $keynames){
  5. if(empty($array) || !is_array($array) || empty($keynames)) return;
  6. if(!is_array($keynames)) $keynames = explode(',',$keynames);
  7. if(!empty($keynames)) $keynames = array_reverse($keynames);
  8. foreach($keynames as $n){
  9. if(array_key_exists($n, $array)){
  10. $newarray = array($n=>$array[$n]); //copy the node before unsetting
  11. unset($array[$n]); //remove the node
  12. $array = $newarray + array_filter($array); //combine copy with filtered array
  13. }
  14. }
  15. return $array;
  16. }
  17.  
  18. function get_json_sorted($object, $array) {
  19. return json_encode(array_reorder_keys(get_object_vars($object), $array));
  20. }
  21.  
  22. $obj = new stdClass();
  23. $obj->name = 'John';
  24. $obj->age = 26;
  25. $obj->id = 3645;
  26.  
  27. var_dump(get_json_sorted($obj, array('id', 'name', 'age')));
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
string(34) "{"id":3645,"name":"John","age":26}"