私はこれらの2つのアレイを持っています、それらは共通として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
違いである「パリッシュ10」の代わりに。
アップデート
何らかの理由array_diff
で、答えで示唆されているように機能しませんでした。これは、線形/1次元配列でのみ機能しました。問題のような多次元配列で試してみましたが、うまくいきませんでした
$filtered = array_diff($featuredgroups, $usergroups);
var_dump($filtered); //returns empty result