php 二维数组按怎么条件随机

$arr=array('1'=>array('date'=>'2011-08-18','num'=>5),'2'=>array('date'=>'2011-08-20',... $arr=array (
'1' => array ( 'date' => '2011-08-18', 'num' => 5 ) ,
'2' => array ( 'date' => '2011-08-20', 'num' => 3 ) ,
'3' => array ( 'date' => '2011-08-17', 'num' => 10 ) ,

'4' => array ( 'date' => '2011-08-20', 'num' => 3 ) ,
'5' => array ( 'date' => '2011-08-17', 'num' => 0 )

)

如何按条件随机打印
如:
$arr=array (

'1' => array ( 'date' => '2011-08-20', 'num' => 3 ) ,
'2' => array ( 'date' => '2011-08-20', 'num' => 3 ) ,

'3' => array ( 'date' => '2011-08-18', 'num' => 5 ) ,

'4' => array ( 'date' => '2011-08-17', 'num' => 10 ) ,

'5' => array ( 'date' => '2011-08-17', 'num' => 0 )

)
num=3 的排在前面,且num=3的值是随机排 ,键3-4的排在后面 且是随机的,如何弄?、
打错 php 二维数组怎么按条件随机排序
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
hyl3515800
2014-05-08 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:92.9万
展开全部
随机排序? 既然是排序又怎么随机? 不是升序就是降序 不知道 你的意思是否要 随机输出数组的内容 ? 请把问题说的明白点
追问
我是要随机打印出来 按照num=3
的靠前
追答
$array = array();   //这个是你的原数据
$new_array = array();
//首先将num=3 的数据 插入新的数组 并在原数组中删除
foreach($array as $key=>$val){
if($val['num'] == 3){
$new_array[]=$array[$key];

unset($array[$key]);

}

}
//再随机抽取一个键值 追加到新的数组 并删除原数组中的 直到原数组为空
while(count($array)>0){
$i = count($array);

$rand_key = read(0,$i);

$new_array[] = $array[$rand_key];

unset($array[$key]);
}
echo '';
print_r($new_array);
输出新的数组

不知道这个是不是你想要的结果
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序员大胡子
2014-05-08 · TA获得超过178个赞
知道小有建树答主
回答量:357
采纳率:50%
帮助的人:89.7万
展开全部
你是要打印还是弄成一个数组。。。。。。
追问
我是要随机打印出来 按照num=3
的靠前
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式