Как запустить ffmpeg cmd, если в пути к директору или имени файла есть место

array_chunk не заполняет массивы равномерно, если общее количество элементов не делится на количество требуемых фрагментов; последний фрагмент может быть намного меньше первого (например, если у вас есть семь элементов, и вы разделились на три куска, вы получите массивы, содержащие три, три и один элемент).

Следующая реализация будет попытайтесь сгладить это так, чтобы размеры массива были более равномерными, если это то, что вам нужно, например если у вас есть семь элементов, вы получите массивы кусков, содержащие три, два и два элемента. Это все еще не так, но это более равномерно. Он возвращается к использованию array_chunk, если счетчик равномерно делится на количество столбцов, поскольку это будет быстрее (особенно если у вас большие массивы).

<?php
function array_group($array, $num)                                                
{                                                                           
    $num = (int) $num;                                                      
    if ($num < 1) {                                                         
        throw new \InvalidArgumentException('At least one group must be returned.');
    }                                                                       

    $count = count($array);                                                
    if ($count && $count % $num === 0) {                                    
        return array_chunk($array, $count / $num);                         
    }                                                                       

    $groups = [];                                                           
    $offset = 0;                                                            
    do {                                                                    
        $length   = ceil(($count - $offset) / $num);                
        $groups[] = array_slice($array, $offset, $length);                 
        $offset   += $length;                                               
    } while (--$num);                                                       

    return $groups;                                                         
} 

print_r(array_chunk(array(1, 2, 3, 4, 5, 6, 7), 3));
/* Produces
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
        )

) */

print_r(array_group(array(1, 2, 3, 4, 5, 6, 7), 3));
/* Produces
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
        )

    [2] => Array
        (
            [0] => 6
            [1] => 7
        )
) */
0
задан Samwinishere Here 18 January 2019 в 12:14
поделиться