4 votes

Utilisation des clés de tableau pour créer un nouveau tableau

Étant donné :

$data = array(
    "some"  => "163",
    "rand"  => "630",
    "om"    => "43",
    "words" => "924",
    "as"    => "4",
    "keys"  => "54"
);

Je veux un nouveau tableau utilisant seulement les clés qui correspondent à ces certaines clés :

$keys = array( "some", "thing", "rand", "keys" );

Je voudrais retourner un tableau avec ces clés en commun, en créant :

$arr = array(
     "some"   => "163",
     "rand"   => "630",
     "keys"   => "54"
);

7voto

Tim Cooper Points 55292

Vous pouvez le faire avec array_intersect_key() y array_flip() :

$arr = array_intersect_key($data, array_flip($keys));

Résultat :

Array
(
    \[some\] => 163
    \[rand\] => 630
    \[keys\] => 54
)

1voto

Mark Baker Points 90240
$filteredArray = array_intersect_key($data, array_flip($keys)); 

est la solution la plus simple,

mais juste pour être différent :

$data = array(
    "some"  => "163",
    "rand"  => "630",
    "om"    => "43",
    "words" => "924",
    "as"    => "4",
    "keys"  => "54"
);

$keys = array( "some", "thing", "rand", "keys" );

$filteredArray = array_filter($data,function($item) use (&$data,$keys) { $retVal = false; if (in_array(key($data),$keys)) $retVal = true; next($data); return $retVal; });

var_dump($filteredArray);

0voto

goat Points 17643
$result = array_intersect_key($data, array_flip($keys));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X