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)
  }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值