给定:
$data = array(
"some" => "163",
"rand" => "630",
"om" => "43",
"words" => "924",
"as" => "4",
"keys" => "54"
);
我想要一个新数组,仅使用与这些特定键匹配的键:
$keys = array( "some", "thing", "rand", "keys" );
我想返回一个具有这些共同键的数组,创建:
$arr = array(
"some" => "163",
"rand" => "630",
"keys" => "54"
);
您可以使用
array_intersect_key()
和array_flip()
执行此操作:
$arr = array_intersect_key($data, array_flip($keys));
结果:
数组( [一些] => 163 [兰特] => 630 [键] => 54)
$filteredArray = array_intersect_key($data, array_flip($keys));
是最简单的解决方案,
但只是为了不同:
$data = array(
"some" => "163",
"rand" => "630",
"om" => "43",
"words" => "924",
"as" => "4",
"keys" => "54"
);
$keys = array( "some", "thing", "rand", "keys" );
$filteredArray = array_filter($data,function($item) use (&$data,$keys) { $retVal = false; if (in_array(key($data),$keys)) $retVal = true; next($data); return $retVal; });
var_dump($filteredArray);
$result = array_intersect_key($data, array_flip($keys));