指定したものから離れた配列からすべてのフィールドを削除する賢明な方法はありますか?
の行に沿って何かarray_diff
がうまくいくと思っていますが、許可したいフィールドキーのみをリストしてから、「他のすべてをドロップ」と言います。それを行う最善の方法は何ですか?
どうもありがとう
array_intersect_key()は、配列のコピーに問題がない場合に機能するはずです。
$arr = array(
'A' => 'alpha',
'B' => 'bravo',
'C' => 'charlie',
'D' => 'delta'
);
$allowedKeys = array('B', 'C');
print_r(array_intersect_key($arr, array_flip($allowedKeys)));
# Array
# (
# [B] => bravo
# [C] => charlie
# )
それ以外の場合は、foreachループを使用できます。
foreach ($arr as $key => $value) {
if (!in_array($key, $allowedKeys)) {
unset($arr[$key]);
}
}
以下のコードを試してください..それはあなたのために働くかもしれません
foreach($array as $key=>&$value) {
if($key!='yourx') {
unset($array[$key])
}
}