【发布时间】:2015-04-16 18:20:25
【问题描述】:
我正在尝试比较两个多维数组中的不匹配值($allSessions,我的主数组和$userSessions,我的内部数组...其中的所有内容都应该在$allSessions 内,但结构不同)我的方法是在 foreach 循环中使用 foreach 。
这在大多数情况下都有效,除了一种情况(当$userSession 只包含一项时)。
我想知道这个错误是否是由循环中的这个循环引起的?当由于 $userSessions 仅包含 1 个项目而出现错误时,返回的 $unregistered 数组包含每个项目的倍数...
$allSessions = $this->getAllUpcoming();
$unregistered = array();
$userSessions = $this->getUserSessions($userID);
foreach ($allSessions as $session) {
foreach ($userSessions as $user) {
if ($user["entry_data"]["session-participant-session"]["id"] !== $session["id"]){
array_push($unregistered, $session);
}
}
}
【问题讨论】:
-
foreach 只需要一个数组。它不关心是否有 0、1 或数以亿计的项目。它只会遍历其中的任何内容。
-
$userSessions与一个项目看起来像什么? -
当您在
$userSessions中拥有超过 1 个项目时,您“确定”它正在工作吗?在我看来,您将在$userSessions中为$allSessions.中的每个元素获取所有不匹配的元素
标签: php arrays multidimensional-array foreach array-difference