2017-05-05 9 views
0

私は$idに関連付けられたデータ、をたくさん持っている連想配列特定のキーをPHPでarrayに保持する方法は?

$preans[$id]... 

を持っています。

はまた、私は

$affected_feature_ids[$id] = TRUE; 

を持っている別の配列を、持っている今、私は$affected_feature_idsに存在し$preansのみインデックスに保持します。

どうすればよいですか?

答えて

3

迅速かつ洗練作業溶液:

$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

これでより洗練されたソリューションを検索することができます!

5

あなたは、単にarray_intersect_keyを使用することができます。すべての引数に存在するキーを持つ配列1のすべてのエントリを含む配列を返します

$preans = array_intersect_key($preans, $affected_feature_ids); 

array_intersect_key()。

+0

これよりもはるかにエレガントです – DevDonkey

関連する問題