zoukankan      html  css  js  c++  java
  • php 自定义求数组差集,效率比自带的array_diff函数还要快(转)

    <?php
    function array_different($array_1, $array_2) {
    $array_2 = array_flip($array_2); //将数组键值调换

    foreach ($array_1 as $key => $val) {
    if (isset($array_2[$val])) {
    unset($array_1[$key]);
    }
    }

    return $array_1;
    }

    function runtime($mode = 0) {
    static $t;

    if (!$mode) {
    $t = microtime();
    return;
    }

    $t1 = microtime();
    list($m0, $s0) = explode(" ", $t);
    list($m1, $s1) = explode(" ", $t1);

    return sprintf("%.3f", ($s1 + $m1 - $s0 - $m0) * 1000);
    }

    $array_1 = array();
    $array_2 = array();

    for ($i = 0; $i <= 5000; $i++) {
    $array_1[$i] = mt_rand(0, 100);
    $array_2[$i] = mt_rand(0, 100);
    }

    runtime(); //计时开始
    $arr_diff = array_diff($array_1, $array_2);
    echo runtime(1); //计时结束并输出计时结果
    echo '<br>';

    foreach ($arr_diff as $key => $val) {
    echo $val.',';
    }

    runtime(); //计时开始
    $arr_diff2 = array_different($array_1, $array_2);
    echo runtime(2); //计时结束并且输出计时结果

    foreach ($arr_diff2 as $key => $val) {
    echo $val.',';
    }

  • 相关阅读:
    javaee_正则表达式基础和常用表达式
    hello2源代码分析
    servlet_filterj简介
    hello1的web.xml解析
    Annotation
    注入(Injection)
    容器(Container)
    Building Tool(Maven/Gradle)
    JavaWeb的历史与发展趋势
    Build Tools
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3230114.html
Copyright © 2011-2022 走看看