Re: problem with large arrays in php 4.3.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Their should be no problem with what your trying to do, try the following function, should act pretty much like array_diff();




if(!function_exists('array_diff')) {
    function array_diff($array1, $array2)
    {
        $difference = array();
        foreach($array1 as $key => $value)
        {
            if(is_numeric($key)) {
                if(!in_array($value, $array2)) {
                    $difference[] = $value;
                }
            } else {
                if(!array_key_exists($key, $array2)) {
                    $difference[] = $key;
                }
            }
        }
        return $difference;
    }
}




// small test
$array1 = array_fill(0, 20000, 'banana');
$array2 = array();
print_r(array_diff($array1, $array2));




It also depends how much data the arrays contain

James



Jesse Guardiani wrote:
Hello,

I have an old version of php (4.3.2) that is acting rather strangely. I'm
searching two large arrays (approx 22,000 records in each) using
array_diff_key() from the PEAR PHP_Compat library:

        $result = $args[0];
        foreach ($args[0] as $key1 => $value1) {
            for ($i = 1; $i !== $array_count; $i++) {
                foreach ($args[$i] as $key2 => $value2) {
                    if ((string) $key1 === (string) $key2) {
                        unset($result[$key2]);
                        break 2;
                    }
                }
            }
        }

And I'm getting aweful performance. I know it's a ton of records (22,000 *
22,000), but it shouldn't take 16 minutes on a P4 Xeon 2.4ghz!

Has anyone seen this before? Is this a bug? Or are my math skills lacking and
this is perfectly normal performance for the size of the data set?

Thanks!


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux