【发布时间】:2017-10-17 22:41:31
【问题描述】:
我在变量$class 中放置了一个数组,该数组由每个包含 2 个学生 ID 的子数组组成,
我正在尝试查找包含某个 id 的所有子数组,例如 11
我想将所有包含此 id 的数组保存在一个变量中。
数组示例
Array
(
[0] => Array
(
[s1] => 6
[s2] => 37
)
[1] => Array
(
[s1] => 8
[s2] => 11
)
[2] => Array
(
[s1] => 11
[s2] => 48
)
)
代码
foreach ($class as $key => $value) {
if(!in_array($id, $class)){
unset($class[$key]);
}
}
【问题讨论】:
-
将
if(!in_array($id, $class)){更改为if(!in_array($id, $value)){- 另外,但这可能取决于个人喜好:我不喜欢在循环遍历数组时更改数组。虽然它在 PHP 中看起来通常是安全的,但我已经习惯不这样做了。在这种特殊情况下,我只需将所有 匹配 值放入一个新数组中,并保持原始不变。 -
@ccKep 仍然得到一个空的 Array()
-
Works fine for me? 您是否使用不同的 ID 多次这样做?由于您要更改原始
$class数组,因此第二次搜索可能会产生意外结果(例如,在搜索11后搜索6会返回一个空数组,因为第一次搜索会将数组缩减为仅包含 @ 的对987654332@,并且这些对都不再包含6) -
糟糕...我正在写答案,而您已经在 cmets 中描述了同样的事情!我的错。
-
@mirvatJ 那么你没有在这个问题中提供所有必需的信息。如链接所示,此代码适用于您提供的结构。