私は$id
に関連付けられたデータ、をたくさん持っている連想配列特定のキーをPHPでarrayに保持する方法は?
$preans[$id]...
を持っています。
はまた、私は
$affected_feature_ids[$id] = TRUE;
を持っている別の配列を、持っている今、私は$affected_feature_ids
に存在し$preans
のみインデックスに保持します。
どうすればよいですか?
私は$id
に関連付けられたデータ、をたくさん持っている連想配列特定のキーをPHPでarrayに保持する方法は?
$preans[$id]...
を持っています。
はまた、私は
$affected_feature_ids[$id] = TRUE;
を持っている別の配列を、持っている今、私は$affected_feature_ids
に存在し$preans
のみインデックスに保持します。
どうすればよいですか?
迅速かつ洗練作業溶液:
$a = []
foreach($affected_feature_ids as $key => $value) {
if ($value) $a[$key] = $preans[$key];
}
// Now $a has only the elements you wanted.
print_r($a); // <-- displays what you are asking for
一つよりエレガントな解決策は次のようになります。
$preans = array_intersect_key($preans, array_filter($affected_feature_ids));
Matheiミハイの答えとの違いは、それが$id
が偽またはnullである$affected_feature_ids
要素を無視するということです。あなたのケースでは、それは$affected_feature_ids[$id]
の時にのみ考慮されますtrue
これでより洗練されたソリューションを検索することができます!
あなたは、単にarray_intersect_keyを使用することができます。すべての引数に存在するキーを持つ配列1のすべてのエントリを含む配列を返します
$preans = array_intersect_key($preans, $affected_feature_ids);
array_intersect_key()。
これよりもはるかにエレガントです – DevDonkey