I have an array:
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
'key4' => 'value4',
'key5' => 'value5',
);
and I would like to get a part of it with specified keys - for example key2, key4, key5
.
Expected result:
$result = array(
'key2' => 'value2',
'key4' => 'value4',
'key5' => 'value5',
);
What is the fastest way to do it ?
You need array_intersect_key
function:
$result = array_intersect_key($array, array('key2'=>1, 'key4'=>1, 'key5'=>1));
Also array_flip
can help if your keys are in array as values:
$result = array_intersect_key(
$array,
array_flip(array('key2', 'key4', 'key5'))
);
You can use array_intersect_key
and array_fill_keys
to do so:
$keys = array('key2', 'key4', 'key5');
$result = array_intersect_key($array, array_fill_keys($keys, null));
array_flip
instead of array_fill_keys
will also work:
$keys = array('key2', 'key4', 'key5');
$result = array_intersect_key($array, array_flip($keys));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With