如何从多个项目和数组中获取PHP中的唯一输出

问题描述 投票:0回答:1

PHP没有在assigned_IPs和IP_array之间返回唯一的项目。我需要一个独特的输出。

我已经尝试合并数组并比较它们。

    $ips2 = array(); 

  while ($row = mysql_fetch_assoc($result))  
    {
        $ips2[] = $row["ipaddr"]; 
    } 
        $assigned_ips  = $ips2;

 $ip_array = explode("\n",$ips);

$ips_left = array_diff($ip_array,$assigned_ips);

PHP比较2个项目列表后,我需要返回一个唯一的数组。

php squid whmcs
1个回答
0
投票

幸运的是,PHP有一个array_unique()功能就是为了这个目的!您可以在array_diff()之前在两个比较的数组上执行它,但我非常确定最好(最有效)的做法是在您已经有结果时只执行一次:

$ips2 = array(); 

  while ($row = mysql_fetch_assoc($result))  
    {
        $ips2[] = $row["ipaddr"]; 
    } 
$assigned_ips  = $ips2;

$ip_array = explode("\n",$ips);

$ips_left = array_unique(
    array_diff($ip_array,$assigned_ips)
);

仅仅为了完整性,如果你有大量的重复项会使array_diff()函数陷入困境,这里有一种替代方法可以更有效:

$ips2 = array(); 

  while ($row = mysql_fetch_assoc($result))  
    {
        $ips2[] = $row["ipaddr"]; 
    } 
$assigned_ips  = $ips2;

$ip_array = explode("\n",$ips);

$ips_left = array_diff(
    array_unique($ip_array)
    array_unique($assigned_ips)
);
© www.soinside.com 2019 - 2024. All rights reserved.