In some cases you might have a structured array from the database and one
of its nodes goes like this;
<?php
$arr    = array( 
    'name'  => 'some name', 
    'key2'  => 'value2', 
    'title' => 'some title', 
    'key4'  => 4, 
    'json'  => '[1,0,1,1,0]'
);
$keys   = array( 'name', 'json', 'title' );
?>
Now consider that you want to capture $arr values from $keys.
Assuming that you have a limitation to display the content into given keys
order, i.e. use it with a vsprintf, you could use the following
<?php
$string = "<p>name: %s, json: %s, title: %s</p>";
$keys   = array_flip( $keys );
$test   = array_intersect_key( $arr, $keys );
echo vsprintf( $string, $test );
$test   = array_replace( $keys, $test );
echo vsprintf( $string, $test );
?>
I hope that this will save someone's time.