php演算法之切割陣列,不用array_chunk(),演算法之二,取陣列的差值,不用array_diff()

技術mix呢發表於2017-11-10

用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,如需轉載請自行聯絡原作者 


相關文章