php 算法之切割数组,不用array_chunk(),算法之二,取数组的差值,不用array_diff()...

本文提供了两个PHP自定义数组操作函数。第一个函数用于将数组分割为指定大小的子数组,支持保留键名。第二个函数用于求两个数组的差集,即返回不在第二个数组中的元素。

用php写算法切割数组,不用array_chunk();算法例如以下所看到的。

<?php
//$array 数组
//$size  每一个数组的个数
//每一个数组元素是否默认键值
function array_chunk_list($array, $size, $preserve_keys = false)
{
    reset($array);
    $i = 0;
    foreach ($array as $key => $value) {
        // 是否存在这个值
        if (! isset($newarray[$i])) {
            $newarray[$i] = array();
        }
        if (count($newarray[$i]) < $size) { // 先推断的问题
            if ($preserve_keys == false) {
                $newarray[$i][] = $value;
            } else {
                $newarray[$i][$key] = $value;
            }
        } else {
               $i++;
            if ($preserve_keys == false) {
                $newarray[$i][] = $value;
            } else {
                $newarray[$i][$key] = $value;
            }
        }
    }
    return $newarray;
}
  
  $array=array(1,2,3,4,5,6,7);
  print_r(array_chunk_list($array, 2,true));

   用php写算法取数组的差值。不用array_diff():代码例如以下

   

function arraydiffemulation($arrayform, $arrayagaist)
{
    $arrayagaist = array_flip($arrayagaist);
    foreach ($arrayform as $key => $value) {
        if (isset($arrayagaist[$value])) {
            unset($arrayform[$key]);
        }
    }
    return $arrayform;
}

$arrayform=array('a','b','c','d','e');
$arrayagaist=array('b','c','d');
print_r(arraydiffemulation($arrayform, $arrayagaist));





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5358048.html,如需转载请自行联系原作者 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值