用函数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);