我有这两个数组,它们有ID [3和4]为常用,ID [10]为差异。我只需要ID [10]
的项目<?php
$usergroups = array();
$usergroups[] = array("id" => 3, "name" => "Parish 3");
$usergroups[] = array("id" => 4, "name" => "Parish 4");
$u= (object) $usergroups;
var_dump($u);
echo '<hr />';
$featuredgroups = array();
$featuredgroups [] = array("id" => 3, "name" => "Parish 3");
$featuredgroups [] = array("id" => 4, "name" => "Parish 4");
$featuredgroups [] = array("id" => 10, "name" => "Parish 10");
$fg = (object) $featuredgroups;
var_dump($fg);
$filtered = array_diff($featuredgroups, $usergroups);
var_dump($filtered); //returns empty result
?>
如何过滤掉用户的精选内容?我试过这个
$filtered = array();
foreach($u as $uu)
{
$ug = (object) $uu;
foreach($fg as $ff)
{
$fgr = (object) $ff;
if($fgr->id != $ug->id)
echo "<br>---".$fgr->name; //am supposed to add this to filtered
}
}
并打印出来
---Parish 4
---Parish 10
---Parish 3
---Parish 10
而不仅仅是'Parish 10',这是不同的。
出于某种原因,答案中建议的array_diff
不起作用。这仅适用于线性/ 1维阵列。我尝试使用多维数组,就像问题中的一个,它没有用
$filtered = array_diff($featuredgroups, $usergroups);
var_dump($filtered); //returns empty result
答案 0 :(得分:3)
要获得两个数组的区别,可以使用array_diff。
http://php.net/manual/en/function.array-diff.php
$differences = array_diff($usergroups, $featuredgroups);
答案 1 :(得分:3)
您需要使用array_diff
,这是manual
答案 2 :(得分:1)
我们来看两个阵列。
$usergroups = array();
$usergroups[] = array("id" => 3, "name" => "Parish 3");
$usergroups[] = array("id" => 4, "name" => "Parish 4");
和
$featuredgroups = array();
$featuredgroups [] = array("id" => 3, "name" => "Parish 3");
$featuredgroups [] = array("id" => 4, "name" => "Parish 4");
$featuredgroups [] = array("id" => 10, "name" => "Parish 10");
现在,假设此id
为唯一,我们可以检索数组中用户组中的所有id
。
foreach ($usergroups as $item => $value)
{
$c[] = $value['id'];
}
此$ c数组将包含用户组中的所有id
。现在我们都需要做的是,检查特征组中是否存在id
;如果不存在,则检索这些值。可以通过以下方式将foreach
和in_array()
组合使用来完成:
foreach ($featuredgroups as $item => $value)
{
if (!in_array($value['id'], $c))
{
$d[] = $value;
}
}
完整代码:
foreach ($usergroups as $item => $value)
{
$c[] = $value['id'];
}
foreach ($featuredgroups as $item => $value)
{
if (!in_array($value['id'], $c))
{
$d[] = $value;
}
}
此处$d
将检索所需的结果。