我有一个放在变量$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]);
}
}
答案 0 :(得分:2)
你很亲密。如果使用in_array()循环并引用正确的变量,它将按您希望的那样工作。然后将匹配的数组分配给一个新的数组var以便稍后使用(这样你就不会改变你的原始数组了!):
$id = 11;
$matched = array();
foreach ($class as $i => $students) {
if ( in_array($id, $students) ) {
$matched[] = $class[$i];
}
}
print_r($matched);
会导致:
Array (
[0] => Array
(
[s1] => 8
[s2] => 11
)
[1] => Array
(
[s1] => 11
[s2] => 48
)
)
答案 1 :(得分:-1)
关联数组 http://php.net/manual/es/function.array-search.php
$class = array(array("s1"=>6, "s2"=>37),array("s1"=>8,"s2"=>11),array("s1"=>11, "s2"=>48));
$id = 11;
foreach ($class as $key => $value) {
if(!array_search($id, $value)){
unset($class[$key]);
}
}
抱歉,您可以按照这个答案 using array_search for multi dimensional array