配列のサブセットを取得するためにこの関数を書きました。PHPには、このための組み込み関数がありますか。ドキュメントで見つけられません。車輪を再発明するのはもったいないようです。
function array_subset($array, $keys) {
$result = array();
foreach($keys as $key){
$result[$key] = $array[$key];
}
return $result;
}
配列のサブセットを取得するためにこの関数を書きました。PHPには、このための組み込み関数がありますか。ドキュメントで見つけられません。車輪を再発明するのはもったいないようです。
function array_subset($array, $keys) {
$result = array();
foreach($keys as $key){
$result[$key] = $array[$key];
}
return $result;
}
これもずっと欲しい。Underscore のpickの PHP バージョンのように。
それは醜くて直観に反していますが、私が時々することはこれです(これはprodigitalsonが得ていたものかもしれないと思います):
$a = ['foo'=>'bar', 'zam'=>'baz', 'zoo'=>'doo'];
// Extract foo and zoo but not zam
print_r(array_intersect_key($a, array_flip(['foo', 'zoo'])));
/*
Array
(
[foo] => bar
[zoo] => doo
)
*/
array_intersect_keyは、キーが 2 番目の引数に存在する最初の引数のすべての要素 (および存在する場合は、後続のすべての引数) を返します。ただし、キーとキーを比較するため、便宜上array_flipを使用します。使用することもでき['foo' => null, 'zoo' => null]
ましたが、それはさらに醜いです。
array_diff_key
そしてarray_intersect_key
おそらくあなたが望むものです。