PHP compare array

后端 未结 17 1823
萌比男神i
萌比男神i 2020-11-28 12:19

Is there anyway to compare arrays in php using an inbuilt function, short of doing some sort of loop?

$a1 = array(1,2,3);
$a2 = array(1,2,3);

if (array_are_         


        
17条回答
  •  盖世英雄少女心
    2020-11-28 13:13

    If you want to search some array inside a big array of arrays (>10k) then much more quickly is comparing serialized arrays (saved in cache). Example from work with URL:

    /**
    @return array
    */
    function createCache()
    {
        $cache = [];
        foreach ($this->listOfUrl() as $url => $args)
        {
            ksort($args);
            $cache['url'][$url] = $args;
            $cache['arr'][crc32(serialize($args))] = $url;
        }
        return $cache;
    }
    
    /**
    @param array $args
    @return string
    */
    function searchUrl($args)
    {
        ksort($params);
        $crc = crc32(serialize($params));        
        return isset($this->cache['arr'][$crc]) ? $this->cache['arr'][$crc] : NULL;                
    } 
    
    /**
    @param string $url
    @return array
    */
    function searchArgs($url)
    {
        return isset($this->cache['url'][$url]) ? $this->cache['url'][$url] : NULL;
    }
    

提交回复
热议问题