CakePHP 配列のソート

CakePHPではcollectionを利用して様々な処理を行うことができ便利なので簡単なソートする際にもわざわざ活用していたのですが phpには標準で配列をソートする関数が定義されているので処理速度が遅くなっているのではないかとおもいどのくらいの差があるのか比較してみました

$arr = [
    ['status' => 1, 'name' => 'Haruto'],
    ['status' => 2, 'name' => 'Mario'],
    ['status' => 1, 'name' => 'Ken'],
    ['status' => 1, 'name' => 'Yusuke'],
    ['status' => 2, 'name' => 'Areku'],
    ['status' => 2, 'name' => 'Seiryu'],
    ['status' => 1, 'name' => 'Yu'],
    ['status' => 1, 'name' => 'Juri'],
    ['status' => 3, 'name' => 'Hamaji'],
    ['status' => 2, 'name' => 'Hiro'],
  ];
  $start = microtime(true);
  for ($i = 0 ; $i < 100 ; $i++){
    $arr = collection($arr)->sortBy('status')->toArray();
  }
  $end = microtime(true) - $start;
  echo $end;

  $arr = [
    ['status' => 1, 'name' => 'Haruto'],
    ['status' => 2, 'name' => 'Mario'],
    ['status' => 1, 'name' => 'Ken'],
    ['status' => 1, 'name' => 'Yusuke'],
    ['status' => 2, 'name' => 'Areku'],
    ['status' => 2, 'name' => 'Seiryu'],
    ['status' => 1, 'name' => 'Yu'],
    ['status' => 1, 'name' => 'Juri'],
    ['status' => 3, 'name' => 'Hamaji'],
    ['status' => 2, 'name' => 'Hiro'],
  ];

  $start = microtime(true);
  for ($i = 0 ; $i < 100 ; $i++){
    arsort($arr);
  }
  $end = microtime(true) - $start;
  echo $end;

結果

コレクションを使った場合

0.0028500556945801

php標準の関数を使った場合

0.0001630783081054

やはりムダにcollectionばかり使うのはよくなかったです