J'ai un tableau et dans ce tableau j'ai une clé de tableau qui ressemble, show_me_160
cette clé de tableau peut changer un peu, donc parfois la page peut charger et la clé de tableau peut-être show_me_120
, Je veux maintenant est juste possible de faire correspondre la clé de tableau jusqu'à la dernière _
afin que je puisse vérifier quelle est la valeur après le dernier trait de soulignement?sélection d'une clé de tableau basée sur la chaîne partielle
Répondre
une solution que je peux penser:
foreach($myarray as $key=>$value){
if("show_me_" == substr($key,0,8)){
$number = substr($key,strrpos($key,'_'));
// do whatever you need to with $number...
}
}
J'ai considéré cela pour ce que je suis en train de faire, mais je pense que ce serait péniblement lent sur les énormes tableaux. – GordonM
vous auriez à itérer sur votre tableau pour vérifier chaque clé séparément, puisque vous n'avez pas la possibilité d'interroger directement le tableau (je suppose le tableau contient également des touches totalement sans rapport avec, mais vous pouvez ignorer la if
partie si ce n'est pas le cas):
foreach($array as $k => $v)
{
if (strpos($k, 'show_me_') !== false)
{
$number = substr($k, strrpos($k, '_'));
}
}
Cependant, cela ressemble à une façon très étrange de stocker des données, et si je vous, je » d vérifier s'il n'y a pas d'autre moyen (plus efficace) de transmettre les données autour de votre application;)
Cela fonctionne pour moi dans ma situation, mais notez que cette ligne: 'if (strpos ($ k, 'show_me_')! == false)' devrait être 'if (strpos ($ v, 'show_me_')! == false) ' – freestate
Vous pouvez également utiliser une solution preg_match
:
foreach($array as $str) {
if(preg_match('/^show_me_(\d+)$/',$str,$m)) {
echo "Array element ",$str," matched and number = ",$m[1],"\n";
}
}
Je suis tombé sur un problème similaire récemment. C'est ce que je suis venu avec:
$value = $my_array[current(preg_grep('/^show_me_/', array_keys($my_array)))];
foreach($myarray as $key=>$value)
if(count(explode('show_me_',$event_key)) > 1){
//if array key contains show_me_
}
Plus d'informations (par exemple):
si la clé de tableau contient 'show_me_'
$ exemple = explode ('show_me_', » show_me_120 ');
print_r ($ exemple)
Array ([0] => [1] => 120)
print_r (count ($ exemple))
2
print_r ($ exemple [1])
120
Pourriez-vous expliquer plus en détail ce que signifie ce morceau de code? –
si la clé du tableau contient 'show_me_' $ exemple = explode ('show_me _', 'show_me_120'); $ exemple: Array ([0] => [1] => 120) count ($ par exemple) est la suivante: ** 2 ** $ exemple [1] est le suivant: ** 120 * * – user5510975
Pourquoi avez-vous besoin de deux fonctions (exploser et compter), si vous pouvez utiliser des sous-chaînes ou des strpos? –
- 1. Recherche et Somme basée sur la sélection
- 2. chaîne de fractionnement basée sur des valeurs dans un tableau
- 3. Rendre une vue partielle basée sur la condition
- 4. ADO.NET Entity: limiter la sélection de données basée sur Afficher
- 5. Sélection aléatoire de la clé du tableau javascript
- 6. Array PHP, obtenir la clé basée sur une valeur
- 7. Chaîne de connexion dynamique basée sur la variable de session
- 8. Filtrage d'une zone de liste basée sur la sélection COMBOBOX
- 9. Sélection de la spécification ClearCase basée sur l'attribut d'élément
- 10. Mysql Sélection basée sur le poids
- 11. Ajout de la contrainte de clé étrangère à la clé primaire 'partielle' dans PostgreSQL
- 12. CSS Sélection multiple basée sur des parents
- 13. Sélectionnez une sous-chaîne basée sur la chaîne d'options
- 14. fente de chaîne basée sur char
- 15. Mot clé EnvDTE classe partielle
- 16. Utilisation de CreateCriteria et sélection d'une ligne basée sur maxvalue
- 17. jQuery - Obtenez une sélection basée sur la valeur
- 18. Conseil SQL - sélection basée sur la colonne d'une autre table
- 19. Modifier la source d'image basée sur asp: sélection DropDownList
- 20. MySQL - La sélection basée sur une instruction if
- 21. Requête Hibernate avec clé partielle
- 22. Sql Server CE Commande TableDirect basée sur la clé primaire
- 23. Intersection de tableau basée sur une comparaison de chaînes
- 24. Comment obtenir la somme de la valeur basée sur la même clé jusqu'à un certain point dans un tableau?
- 25. Crystal Reports sélection if-then-else basée sur le paramètre
- 26. Afficher le tableau HTML sur la sélection de la radio
- 27. Convertir la sélection jlist dans une chaîne
- 28. Chaîne fractionnée basée sur une série de caractères
- 29. Division d'une chaîne, basée sur le prédicat
- 30. Modifier une chaîne basée sur un modèle
Pouvez-vous donner un Exemple? – Gumbo
utilisez array_map et une fonction de rappel à preg_metch pour '#show_me _ ([\ d]) + #' – Hannes