比告诉更好的表现。
$first = array(
3=>"Banana",
4=>"Apple",
6=>"Lemon",
7=>"Pineapple",
8=>"Peach"
);
$second = array(4,7,8);
(请注意:第一个是关联数组,它可以有孔) 结果应该是
$result = array(
"Apple",
"Pineapple",
"Peach"
);
有什么好主意吗? 谢谢
答案 0 :(得分:3)
我们正在使用array_intersect_key
,array_flip
和array_values
。这个单衬里就足够了。
1。
array_values
将返回数组的值。2。
array_flip
会将数组翻转到keys
和values
。3。
array_intersect_key
将根据交叉键上的两个输入数组返回数组。
print_r(
array_values(
array_intersect_key(
$first, array_flip($second))));
答案 1 :(得分:0)
只需一个简单的foreach循环即可。并且isset()在尝试读取之前检查索引是否存在于第一个数组中:
$first = array(
3=>"Banana",
4=>"Apple",
6=>"Lemon",
7=>"Pineapple",
8=>"Peach"
);
$second = array(4,7,8);
$result = array();
foreach($second as $i)
{
if (isset($first[$i])) $result[] = $first[$i];
}
var_dump($result);
答案 2 :(得分:0)
嗨,你可以这样使用
$ first = array(
3=>"Banana",
4=>"Apple",
6=>"Lemon",
7=>"Pineapple",
8=>"Peach"
);
$ second = array(4,7,8);
foreach($ first as $ key => $ val) {
if(array_search($ key,$ second)=== false) {
未设置($第一[$键]); }
}
的print_r($第一);出口;