随机化包含特定键->值的对象数组

Randomize array of objects which contains specific key->value

我有一个包含 45 个对象元素的数组,其中包含 idnameis_premium

我从 MySQL 收到它们,按 is_premium desc 排序,其中一些在列表末尾有 is_premium = 0

如何使用 is_premium=1 随机化元素,同时将 is_premium=0 保持在数组末尾?

尝试一下是否可行:

<?php 
//assuming the array of objects is called $array
$new_array = array_merge(
    shuffle(
        array_filter($array,function($x){return $x['is_premium'] == 1;})
    ),
    array_filter($array,function($x){return $x['is_premium'] == 0;})
);
?>