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

    用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));


原文地址:https://www.cnblogs.com/mfrbuaa/p/5358048.html