php 重新组合数组_关于一个数组的问题,重新组合

原数组:

$arr=array( [0] => Array ( [caseid] => 31 [name] => 张三 [shijian] => Array ( [0] => 8:00 [1] => 18:00 ) ) [1] => Array ( [caseid] => 32 [name] => 李四 [shijian] => Array ( [0] => 8:00 [1] => 12:00 [2] => 18:00 ) ) [2] => Array ( [caseid] => 33 [name] => 王五 [shijian] => Array ( [0] => 8:00 [1] => 12:00 [2] => 18:00 ) ))

我要将这个数组 重新组合,按照时间组合,组合完毕应该是这样的,搞了好久搞不出来。求助,谢谢

Array( [0] => Array ( [time] => 8:00 [detail] => Array ( [0] => Array ( [caseid] => 31 [casename] => 张三 )[1] => Array([caseid] => 32[casename] =>李四)[2] => Array([caseid] => 33[casename] => 王五) ) ) [1] => Array ( [time] => 12:00 [detail] => Array ( [0] => Array ( [caseid] => 32 [casename] => 李四 )[1] => Array ( [caseid] => 33 [casename] => 王五 ) ) ) [2] => Array ( [time] => 18:00 [detail] => Array ( [0] => Array ( [caseid] => 31 [casename] => 张三 )[1] => Array([caseid] => 32[casename] => 李四)[2] => Array([caseid] => 33[casename] => 王五) ) ))

回复讨论(解决方案)

$arr = array ( 0 => array ( 'caseid' => '31', 'name' => '张三', 'shijian' => array ( 0 => '8:00', 1 => '18:00', ), ), 1 => array ( 'caseid' => '32', 'name' => '李四', 'shijian' => array ( 0 => '8:00', 1 => '12:00', 2 => '18:00', ), ), 2 => array ( 'caseid' => '33', 'name' => '王五', 'shijian' => array ( 0 => '8:00', 1 => '12:00', 2 => '18:00', ), ),);foreach($arr as $item) { foreach($item['shijian'] as $t) { if(! isset($res[$t])) $res[$t] = array('time' => $t, 'detail' => array()); $res[$t]['detail'][] = array('caseid' => $item['caseid'], 'casename' => $item['name']); }}array_multisort(array_map('strtotime', array_keys($res)), $res);print_r(array_values($res)); Array( [0] => Array ( [time] => 8:00 [detail] => Array ( [0] => Array ( [caseid] => 31 [casename] => 张三 ) [1] => Array ( [caseid] => 32 [casename] => 李四 ) [2] => Array ( [caseid] => 33 [casename] => 王五 ) ) ) [1] => Array ( [time] => 12:00 [detail] => Array ( [0] => Array ( [caseid] => 32 [casename] => 李四 ) [1] => Array ( [caseid] => 33 [casename] => 王五 ) ) ) [2] => Array ( [time] => 18:00 [detail] => Array ( [0] => Array ( [caseid] => 31 [casename] => 张三 ) [1] => Array ( [caseid] => 32 [casename] => 李四 ) [2] => Array ( [caseid] => 33 [casename] => 王五 ) ) ))

echo '';$arr = array( array('caseid'=>31, 'name'=>'张三', 'shijian'=> array('8:00','18:00')), array('caseid'=>32, 'name'=>'李四', 'shijian'=> array('8:00','12:00','18:00')), array('caseid'=>33, 'name'=>'王五', 'shijian'=> array('8:00','12:00','18:00')));$result = array();foreach($arr as $row){ foreach($row['shijian'] as $shijian){ $detail = array( 'caseid' => $row['caseid'], 'casename' => $row['name'] ); if(!isset($result[$shijian])){ $result[$shijian]['time'] = $shijian; $result[$shijian]['detail'] = array(); } array_push($result[$shijian]['detail'], $detail); }}ksort($result, SORT_NUMERIC);$result = array_values($result);echo '';print_r($result);echo '';

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值