php - 如何从多个项目和数组中获取 PHP 中的唯一输出
问题描述
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 有一个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)
);
推荐阅读
- javascript - 如何在三元运算符上告诉javascript“任何大于”的数字?
- c# - 属性或索引器不能作为 out 或 ref 参数传递 Xamarin.Forms (C#)
- javascript - 数组推送在 Firestore 回调中不起作用
- angular - Angular Login 没有响应 - 使用 Laravel 后端
- python - 正则表达式中的嵌套组如何在 python 中工作
- python - 如何将 linux 包正确安装到谷歌云平台项目中?
- javascript - 我怎样才能使这个动画响应?
- collision-detection - 一次对多个对象进行碰撞检测
- python - Python/JSON 密钥错误
- macos - 如何在 Xcode 10 中构建 Apple“开源”项目