Skip to content

Instantly share code, notes, and snippets.

@jaceju
Last active November 25, 2016 05:19
Show Gist options
  • Save jaceju/dcae0e91c366221569b9e943c2960a79 to your computer and use it in GitHub Desktop.
Save jaceju/dcae0e91c366221569b9e943c2960a79 to your computer and use it in GitHub Desktop.
考題: Laravel Collection 應用

考題: Laravel Collection 應用

參考以下 $usersData ,請利用 Laravel Collection 實作以下規格:

  1. 先以 isVip 分組, true 排前面, false 排後面。
  2. 對已經分組的結果,再以 isOnline 分組, true 排前面, false 排後面。
  3. 對所有分組以 followerCount 由高至低排序。
  4. 把所有分組結果重新組合成只有一層的 array 。
  5. 預期重新排序過的 $usersData 應如下:
[
  ['userId' => '44444444', 'isVip' => true,  'isOnline' => true,  'followerCount' => 1500,],
  ['userId' => '66666666', 'isVip' => true,  'isOnline' => true,  'followerCount' => 200, ],
  ['userId' => '22222222', 'isVip' => false, 'isOnline' => true,  'followerCount' => 50,  ],
  ['userId' => '33333333', 'isVip' => false, 'isOnline' => false, 'followerCount' => 500, ],
  ['userId' => '55555555', 'isVip' => false, 'isOnline' => false, 'followerCount' => 300, ],
  ['userId' => '99999999', 'isVip' => false, 'isOnline' => false, 'followerCount' => 150, ],
  ['userId' => '11111111', 'isVip' => false, 'isOnline' => false, 'followerCount' => 100, ],
  ['userId' => '77777777', 'isVip' => false, 'isOnline' => false, 'followerCount' => 20,  ],
  ['userId' => '88888888', 'isVip' => false, 'isOnline' => false, 'followerCount' => 10,  ],
]

原始資料:

$usersData = [
  [
    'userId' => '11111111',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 100,
  ],
  [
    'userId' => '22222222',
    'isVip' => false,
    'isOnline' => true,
    'followerCount' => 50,
  ],
  [
    'userId' => '33333333',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 500,
  ],
  [
    'userId' => '44444444',
    'isVip' => true,
    'isOnline' => true,
    'followerCount' => 1500,
  ],
  [
    'userId' => '55555555',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 300,
  ],
  [
    'userId' => '66666666',
    'isVip' => true,
    'isOnline' => true,
    'followerCount' => 200,
  ],
  [
    'userId' => '77777777',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 20,
  ],
  [
    'userId' => '88888888',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 10,
  ],
  [
    'userId' => '99999999',
    'isVip' => false,
    'isOnline' => false,
    'followerCount' => 150,
  ],
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment