用函数array_rand。
不过对于没有键的一维数组,可以直接获取多个值,不过对于有键值对和多维数组的话,取出来的值对应的是原数组的键
要取出二维数组中的多个单元,我试了下,循环一次
$labels = Labels::find()->setColumns('id,w_name,w_uid')->order('w_time desc')->group('w_name')->getAll();
$label_list = array();
foreach ( $labels as $key => $value ){
$label_list[$key]['id'] = $value->id;//标签id
$label_list[$key]['name'] = $value->w_name;//标签名称
}
$label_num = count($label_list) > 15?15:count($label_list);
$tempArr = array();
$labelArr = array();
if ( $label_num ){
$tempArr = array_rand($label_list,$label_num);//随机取出二维数组的键
foreach ( $tempArr as $value ){
$labelArr[] = $label_list[$value];
}
}
unset($label_list,$tempArr);