代码之家  ›  专栏  ›  技术社区  ›  story ks

拉威尔系列。组合同一键

  •  -1
  • story ks  · 技术社区  · 7 年前

    我不能“发明”一个合适的简洁的管道来进行这样的转换。

    数据数组

    enter image description here

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  3
  •   doubleui    7 年前

    <?php
    
    $youHaveArray = [
        0 => [
            'mon' => [
                3 => '10:00',
                4 => '11:00',
                5 => '12:00',
            ],
            'tue' => [
                3 => '11:00',
                4 => '12:00',
            ],
        ],
        1 => [
            'mon' => [
                3 => '10:30',
                4 => '11:30',
                5 => '12:30',
            ],
            'tue' => [
                3 => '11:30',
                4 => '12:30',
            ],
        ]
    ];
    
    $daysOfWeekYouHave = array_keys($youHaveArray[0]) + array_keys($youHaveArray[1]);
    $weekFormated = [];
    
    foreach ($daysOfWeekYouHave as $dayName) {
    
        if (! isset($weekFormated[$dayName])) {
            $weekFormated[$dayName] = [];
        }
    
        if (isset($youHaveArray[0][$dayName])) {
            foreach ($youHaveArray[0][$dayName] as $dayKey => $dayStart) {
                if (isset($youHaveArray[1][$dayName][$dayKey])) {
                    $dayEnd = $youHaveArray[1][$dayName][$dayKey];
                    $weekFormated[$dayName][$dayKey] = $dayStart.' - '.$dayEnd;
                }
            }
        }
    }
    
    var_dump($weekFormated);
    

    array(2) {
    'mon' =>
    array(3) {
        [3] =>
        string(13) "10:00 - 10:30"
        [4] =>
        string(13) "11:00 - 11:30"
        [5] =>
        string(13) "12:00 - 12:30"
    }
    'tue' =>
    array(2) {
        [3] =>
        string(13) "11:00 - 11:30"
        [4] =>
        string(13) "12:00 - 12:30"
    }
    }
    
        2
  •  0
  •   water_ak47    6 年前
    $result = array();
    
    //$data is array which contains the stdClass
    
    foreach ($data as $key => $value) {
    
     $name = $value->video_id;
    
     if (!isset($result[$name])) {
      $result[$name] = [];
     }
    
     $result[$name]['video_id'] = $value->video_id;
     $result[$name]['video_name'] = $value->video_name;
     $result[$name]['category_type'][] = [
      'category_id' => $value->category_id,
      'category_name' => $value->category_name,
     ];
    }
    

    enter image description here

    推荐文章