//входной массив
$in = array(
2 => array(400, 500),
3 => array(800)
);
//массив общий
$param = array(
1 => array(1 => 100, 2 => 200, 3 => 300),
2 => array(4 => 400, 5 => 500, 6 => 600),
3 => array(7 => 700, 8 => 800, 9 => 900)
);
$id = array();
foreach($in as $k => $v){
if(isset($param[$k])){
$tmp = array_intersect($v, $param[$k]);
if(!empty($tmp)){
foreach($tmp as $v2){
$key = array_search($v2, $tmp);
$id[] = $param[$k][$key];
}
}
}
}
//предыдущий способ
/*
foreach($in as $k => $v){
if(isset($param[$k])){
foreach($param[$k] as $k2 => $v2){
if(in_array($v2, $param[$k])){
$key = array_search($v2, $param[$k]);
$id[] = $key;
}
}
}
}
*/
Нужно получить array(4, 5, 8), а мне даёт 0, 1, 0
Предыдущий способ вообще с чего-то дает 4, 5, 6, 7, 8, 9