Expression Régulière + Tableaux
Coutcout86
Messages postés
219
Statut
Membre
-
Coutcout86 Messages postés 219 Statut Membre -
Coutcout86 Messages postés 219 Statut Membre -
Bonjour,
Voila j'ai créé un tableau comme ceci :
Array(
[typFoldPermRef] => 1
[dirParent] =>
[dirPermID] => 1703
[nameDirPerm] => Nom
[read__EVERYBODY] => 1
[read__PERMANENTS] => 1
[write__PERMANENTS] => 1
[write__ENSMA_PERSONNEL] => 1
[affichageBoutons] => Array
(
[boutonValider] => Valider
)
)
Et j'aimerais dissocié pour les index (ou clés) contenant "read__EVERYBODY" ou "write__PERMANENTS" par exemple, les mots "read" et "EVERYBODY". Donc pour cela j'ai utilisé une expression régulière qui passe dans chaque index de mon tableau. Voici mon code :
foreach($formValues as $key=>$champForm)
{
if(preg_match("!(^read)(__*)(\\D{0,})!", $key, $result1));
{
$test2 = $result1[1]."-".$result1[3];
}
}
die(base::pr($test2));
Le problème c'est qu'il ne m'affiche rien (a part le petit tiret) donc je ne comprend pas pourtant mon expression régulière est bonne je l'ai testé pouvez-vous m'aider ??
Merci d'avance
Romain.
Voila j'ai créé un tableau comme ceci :
Array(
[typFoldPermRef] => 1
[dirParent] =>
[dirPermID] => 1703
[nameDirPerm] => Nom
[read__EVERYBODY] => 1
[read__PERMANENTS] => 1
[write__PERMANENTS] => 1
[write__ENSMA_PERSONNEL] => 1
[affichageBoutons] => Array
(
[boutonValider] => Valider
)
)
Et j'aimerais dissocié pour les index (ou clés) contenant "read__EVERYBODY" ou "write__PERMANENTS" par exemple, les mots "read" et "EVERYBODY". Donc pour cela j'ai utilisé une expression régulière qui passe dans chaque index de mon tableau. Voici mon code :
foreach($formValues as $key=>$champForm)
{
if(preg_match("!(^read)(__*)(\\D{0,})!", $key, $result1));
{
$test2 = $result1[1]."-".$result1[3];
}
}
die(base::pr($test2));
Le problème c'est qu'il ne m'affiche rien (a part le petit tiret) donc je ne comprend pas pourtant mon expression régulière est bonne je l'ai testé pouvez-vous m'aider ??
Merci d'avance
Romain.
A voir également:
- Expression Régulière + Tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Les tableaux word - Guide
2 réponses
l'expression régulière n'est pas utile dans ton cas ...
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
<?
foreach($formValues as $key=>$champForm)
{
if ($champForm='write__PERMANENTS' or $champForm='read__PERMANENTS')
$test2 = $result1[1]."-".$result1[3];
}
die(base::pr($test2));
?>
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
oki mais alors comment je fais pour séparer write et PERMANENTS ? car cette action je dois la réaliser pour chaque index contenant write ou read suivi d'un nom de groupe donc il faut bien que je parse tout les index du tableau ? et faire une regex sur les index concernés ?
Merci d'avance
Romain
Merci d'avance
Romain
if ($champForm=='write__PERMANENTS')retourne true si le champ existe ou false si il n'existe pas, de cette facon tu peux vérifier leur existence et les traiter
sinon
<?php
function multi_array_key_exists($search, $tableau) {
foreach ($tableau as $key=>$value) {
if ($search===$key) {
return $key;
}
if (is_array($value)) {
if(multi_array_key_exists($search, $value)) {
return $key . ":" . multi_array_key_exists($search, $value);
}
}
}
return false;
}
?>
retourne une clé si elle existe dans un tableau multidimentionnel ou false si elle n'existe pas