展示胜于讲述。
$first = array( 3=>"Banana", 4=>"Apple", 6=>"Lemon", 7=>"Pineapple", 8=>"Peach" ); $second = array(4,7,8);
(请注意:第一个是关联数组,它可以有孔)结果应该是
$result = array( "Apple", "Pineapple", "Peach" );
有什么好主意吗?非常感谢。
ozxc1zmp1#
这里我们使用的是array_intersect_key、array_flip和array_values。这一个衬垫就足够了。
array_intersect_key
array_flip
array_values
1.array_values将返回数组的值。2.array_flip将在keys和values上翻转数组。3.array_intersect_key将根据两个输入数组的交叉键返回数组。
keys
values
Try this code snippet here
print_r( array_values( array_intersect_key( $first, array_flip($second))));
o3imoua42#
只需一个简单的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);
dphi5xsq3#
你可以这样使用
$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) { unset($first[$key]); } } print_r($first); exit;
3条答案
按热度按时间ozxc1zmp1#
这里我们使用的是
array_intersect_key
、array_flip
和array_values
。这一个衬垫就足够了。1.
array_values
将返回数组的值。2.
array_flip
将在keys
和values
上翻转数组。3.
array_intersect_key
将根据两个输入数组的交叉键返回数组。Try this code snippet here
o3imoua42#
只需一个简单的foreach循环即可完成。isset()在尝试读取第一个数组之前检查该索引是否存在:
dphi5xsq3#
你可以这样使用