doujingya1166 2012-01-30 04:21
浏览 20
已采纳

如何从$ arr1制作$ arr2 [关闭]

It may be not difficult, but cost me half day, still unsolved.

Here are my code, RESERVE_COUNT is the number that duplicated.

$arr1 is here, $arr2 has no relationship with $arr1, just because I want $arr2, so I want to make $arr2 from existing $arr1. So $arr2 does not exist at first.

If not clear, I will explain better, just tell me.

//$arr1:
array(
    [0] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'A'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '09:00'
        ['STAFF_END_TIME'] => '10:00'
    )

    [1] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'B'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '13:00'
        ['STAFF_END_TIME'] => '14:00'
    ) 

    [2] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'A'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '09:00'
        ['STAFF_END_TIME'] => '10:00'
    ) 

    [3] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'A'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '10:00'
        ['STAFF_END_TIME'] => '11:00'
    ) 
)

//$arr2:
array(
    [0] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'A'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '09:00'
        ['STAFF_END_TIME'] => '10:00'
        ['RESERVE_COUNT'] => 2 //exactly same record appeared in $arr1 twice, so here is 2
    )

    [1] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'B'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '13:00'
        ['STAFF_END_TIME'] => '14:00'
        ['RESERVE_COUNT'] => 1
    ) 

    [3] =>
    array(

        ['CLASS_MENU_SYMBOL'] => 'A'
        ['STAFF_ID'] => 3010120001
        ['STAFF_START_TIME'] => '10:00'
        ['STAFF_END_TIME'] => '11:00'
        ['RESERVE_COUNT'] => 1
    ) 
)
  • 写回答

1条回答 默认 最新

  • dqsot35145 2012-01-30 04:49
    关注

    There may be many ways. for example:

    $arr2=array();
    
    foreach($arr1 as $value)//$arr1 is the given array
    {
        //create a key for the new Array to make it unique
      $key=md5(serialize($value));
      $value['RESERVE_COUNT']=1;
    
        //if an entry already exist, add RESERVE_COUNT
      if(isset($arr2[$key]))$value['RESERVE_COUNT']+=$arr2[$key]['RESERVE_COUNT'];
    
      $arr2[$key]=$value;
    }
    print_r($arr2);
    ?>
    

    returns:

    Array
    (
        [450489089cc95e03d6c12dedb770a2a0] => Array
            (
                [CLASS_MENU_SYMBOL] => A
                [STAFF_ID] => 3010120001
                [STAFF_START_TIME] => 09:00
                [STAFF_END_TIME] => 10:00
                [RESERVE_COUNT] => 2
            )
    
        [8726c974e8d060b0dfdaab0aa29f5064] => Array
            (
                [CLASS_MENU_SYMBOL] => B
                [STAFF_ID] => 3010120001
                [STAFF_START_TIME] => 13:00
                [STAFF_END_TIME] => 14:00
                [RESERVE_COUNT] => 1
            )
    
        [003586db1308b821483d6bebc883a932] => Array
            (
                [CLASS_MENU_SYMBOL] => A
                [STAFF_ID] => 3010120001
                [STAFF_START_TIME] => 10:00
                [STAFF_END_TIME] => 11:00
                [RESERVE_COUNT] => 1
            )
    
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab