fork download
  1. <?php
  2.  
  3. $origin = array(
  4. 'id' => '1',
  5. 'size' => '500',
  6. 'message' => 'a',
  7. ),
  8. 'id' => '2',
  9. 'size' => '400',
  10. 'message' => 'd',
  11. ),
  12. 'id' => '3',
  13. 'size' => '1200',
  14. 'message' => 'b',
  15. ),
  16. 'id' => '4',
  17. 'size' => '800',
  18. 'message' => 'c',
  19. ),
  20. );
  21.  
  22. // array_multisortを使う場合
  23. $copy1 = $origin;
  24. $base = array();
  25. foreach ($copy1 as $item)
  26. $base[] = $item['size'];
  27. array_multisort($base,SORT_ASC,$copy1);
  28.  
  29. // usortを使う場合
  30. $copy2 = $origin;
  31. $func = function($a,$b) {
  32. return intval($a['size']) - intval($b['size']);
  33. };
  34. usort($copy2,$func);
  35.  
  36. // 結果確認
  37. '元の配列',
  38. $origin,
  39. 'array_multisort',
  40. $copy1,
  41. 'usort',
  42. $copy2
  43. );
  44.  
  45.  
  46.  
  47.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
string(12) "元の配列"
array(4) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["size"]=>
    string(3) "500"
    ["message"]=>
    string(1) "a"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "2"
    ["size"]=>
    string(3) "400"
    ["message"]=>
    string(1) "d"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["size"]=>
    string(4) "1200"
    ["message"]=>
    string(1) "b"
  }
  [3]=>
  array(3) {
    ["id"]=>
    string(1) "4"
    ["size"]=>
    string(3) "800"
    ["message"]=>
    string(1) "c"
  }
}
string(15) "array_multisort"
array(4) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "2"
    ["size"]=>
    string(3) "400"
    ["message"]=>
    string(1) "d"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["size"]=>
    string(3) "500"
    ["message"]=>
    string(1) "a"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "4"
    ["size"]=>
    string(3) "800"
    ["message"]=>
    string(1) "c"
  }
  [3]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["size"]=>
    string(4) "1200"
    ["message"]=>
    string(1) "b"
  }
}
string(5) "usort"
array(4) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "2"
    ["size"]=>
    string(3) "400"
    ["message"]=>
    string(1) "d"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["size"]=>
    string(3) "500"
    ["message"]=>
    string(1) "a"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "4"
    ["size"]=>
    string(3) "800"
    ["message"]=>
    string(1) "c"
  }
  [3]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["size"]=>
    string(4) "1200"
    ["message"]=>
    string(1) "b"
  }
}