PHP 按照指定数量分割数组

<?php
 
 
/**
 * 系统辅助类
 * @date    2019年7月2日
 * @comment
 *
 */
class SystemUtils
{
    
    private static $_instance;
    private function __construct()
    {
        
    }
    
    public static function getInstance()
    {
        if( null == self::$_instance )
        {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    
    
    
    /**
     * 按照指定数量分块
     * @datetime 2019年7月2日  下午5:50:55
     * @comment    
     * 
     * @param unknown $data
     * @param number $num
     * @return array
     */
    public function split( $data, $num = 5 )
    {
        
        $arrRet = array();
        if( !isset( $data ) || empty( $data ) )
        {
            return $arrRet;
        }
        
        $iCount = count( $data )/$num;
        if( !is_int( $iCount ) )
        {
            $iCount = ceil( $iCount );
        }
        else
        {
            $iCount += 1;
        }
        for( $i=0; $i<$iCount;++$i )
        {
            $arrInfos = array_slice( $data, $i*$num, $num );
            if( empty( $arrInfos ) )
            {
                continue;
            }
            $arrRet[] = $arrInfos;
            unset( $arrInfos );
        }
        
        return $arrRet;
        
    }
    
}

示例数码:

$data = array( 1,2,3,4,5,6,7,8,9,10, 100 );
       
$util = SystemUtils::getInstance();
$res = $util->split( $data, 2 );
echo '<pre>';
var_dump( $res );
echo '</pre>';
exit;

示例结果:

array(6) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    int(2)
  }
  [1]=>
  array(2) {
    [0]=>
    int(3)
    [1]=>
    int(4)
  }
  [2]=>
  array(2) {
    [0]=>
    int(5)
    [1]=>
    int(6)
  }
  [3]=>
  array(2) {
    [0]=>
    int(7)
    [1]=>
    int(8)
  }
  [4]=>
  array(2) {
    [0]=>
    int(9)
    [1]=>
    int(10)
  }
  [5]=>
  array(1) {
    [0]=>
    int(100)
  }
}
————————————————
版权声明:本文为CSDN博主「田小涛」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Q718330882/article/details/94471321
原文地址:https://www.cnblogs.com/bluealine/p/11666641.html