Comment découper un tableau par la clé, pas de décalage?
Fonction PHP array_slice() retourne la séquence des éléments en décalage comme ceci:
//sample data
$a = array('a','b','c',100=>'aa',101=>'bb',102=>'cc');
//outputs empty array because offset 100 not defined
print_r(array_slice($a,100));
Actuel des arguments de la fonction:
array_slice ( $array, $offset, $length, $preserve_keys)
J'ai besoin de quelque chose comme ceci:
array_slice ( $array, **$key**, $length, $preserve_keys)
Que les sorties de cette fonction ci-dessus print_r:
array (
100 => aa,
101 => bb,
102 => cc
)
Vous devez vous connecter pour publier un commentaire.
Pour trouver l'offset de la clé, utilisez
array_search()
à la recherche par le biais de touches, ce qui peut être récupéré avecarray_keys()
.array_search()
sera de retourFALSE
lorsque la clé spécifiée (100
) n'est pas présent dans le tableau ($a
).Imprime:
Solution Alternative
Si vous voulez tranche de la matrice à l'aide de clés pour les articles que vous souhaitez obtenir, vous pouvez utiliser la fonction personnalisée suivante pour le faire:
Utilisation:
Résultat:
$keys
un argument facultatif? Il semble étrange que cette fonction gère de manière défensive de nombreux cas, de n'avoir aucun des clés, l'obtention d'un tableau, sans touches, obtenir... un tableau vide?