[RESOLU] Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 10 juin 2016, 15:12

Merci Spols :)

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Spols » 10 juin 2016, 13:05

foreach($tab as $ligne => $colonne){
  foreach ($colonne as $key => $value) {
    if(in_array($key, $valCol)==false)
    unset($tab[$ligne][$key]);
   }
}

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 10 juin 2016, 12:32

1/ oui ^^, mais fonctionnellement ça change pas grand chose ;) (jsute un ! en plus)
2/ "Cela ne fonctionne pas"
ça suffit pas il est où le code qui va avec ?

=> tu va chez le médecin en disant "j'ai malade, mais tu restes à 100m de moi" ? ;)

@+
non moi quand je vais chez le médecin je lui dit "je suis malade et non pas j'ai malade" looool :D

Voici le code:
foreach($tab as $ligne => $colonne){
  foreach ($colonne as $key => $value) {
    if(in_array($key, $valCol)==false)
    unset($tab[$key]);
   }
}

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par moogli » 10 juin 2016, 12:07

1/ oui ^^, mais fonctionnellement ça change pas grand chose ;) (jsute un ! en plus)
2/ "Cela ne fonctionne pas"
ça suffit pas il est où le code qui va avec ?

=> tu va chez le médecin en disant "j'ai malade, mais tu restes à 100m de moi" ? ;)

@+

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 10 juin 2016, 12:04

salut,

un foreach sur le tableau : (pour chaque ligne)
foreach sur la valeur : pour chaque colonne(index + valeur)
si l'index est dans valCol unset. Pour cela utilise la fonction http://php.net/in_array
fin foreach
fin foreach


@+
Cela ne fonctionne pas

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 10 juin 2016, 10:52

Salut moogli, merci pour ta réponse

Dans ton message tu voulais dire "si l'index n'est pas dans valCol unset"?
Car je veux garder les colonnes qui ont leur index dans valCol.

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par moogli » 10 juin 2016, 10:34

salut,

un foreach sur le tableau : (pour chaque ligne)
foreach sur la valeur : pour chaque colonne(index + valeur)
si l'index est dans valCol unset. Pour cela utilise la fonction http://php.net/in_array
fin foreach
fin foreach


@+

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 10 juin 2016, 10:08

Bonjour à tous c'est encore moi :D ,

cela va faire deux jours que je suis bloqué et donc je ne peux plus avancé dans mon travail.
Voila le souci:

Rappelez-vous j'avais le vecteur:
$valCol=[1,2,3];
au lieu de supprimer les colonnes 1,2,3 je voudrais les garder et supprimer le reste des colonnes.
Je ne vois pas comment m'y prendre, j'ai réalisé plusieurs tests mais rien ne fonctionne.

Merci de votre contribution ;)

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 09 juin 2016, 10:39

C'est bon j'ai trouvé merci quand même :)

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 09 juin 2016, 09:57

Bonjour c'est encore moi,

j'ai encore une dernière question, si mon tableau est disposé comme ci-dessous comment je devrais m'y prendre pour supprimer plusieurs lignes?
$tab= Array ( [0] => Array ( [0] => a [1] => b [2] => c [3] => d ) 
              [1] => Array ( [0] => 1 [1] => 2 [2] => 6 [3] => 7 ) 
              [2] => Array ( [0] => 0 [1] => 3 [2] => 5 [3] => 4 ) 
              [3] => Array ( [0] => 3 [1] => 9 [2] => 7 [3] => 5 ) 
              [4] => Array ( [0] => 2 [1] => 5 [2] => 8 [3] => 7 ) )
Admettons qu'au lieu d'avoir $valCol j'ai $valRow
$valRow=[0,2,4];
Merci

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 08 juin 2016, 17:48

Merci de votre aide :)

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Naroth » 08 juin 2016, 17:28

Autant pour moi.

Et du coup Ryle a raison.
Si tu souhaites supprimer les colonnes 1,2,3 de tes lignes à l'aide de

Code : Tout sélectionner

$valCol=[1,2,3]
tu va devoir faire un double foreach

Code : Tout sélectionner

foreach($tab as $ligne => $colonnes) { foreach($valCol as $col) { unset($tab[$ligne][$col]); } }

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Ryle » 08 juin 2016, 17:17

Si a,b,c... sont tes lignes et 1,2,3 ... tes colonnes :
- pour supprimer une ligne il suffit de faire unset($tab['leNomDeLaLigne']) et toute les colonnes de cette ligne seront supprimées.
- pour supprimer une colonne, il faut la supprimer dans chacune des lignes. Il faut donc boucler sur tes lignes et faire un unset($tab['leNomDeLaLigne']['leNomDeLaColonne'])

Donc pour supprimer la ligne C :
unset($tab['c']);
Et pour supprimer la colonne 2 de chacune des lignes :
foreach ($tab as $ligne => $colonnes) {
  unset($tab[$ligne]['2']);
}

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Weezy » 08 juin 2016, 17:17

Non ce sont des lignes

Re: Préserver les clés numériques d'un tableau lors d'une suppression d'une ligne ou colonne.

par Naroth » 08 juin 2016, 17:09

Est-ce que pour toi "a" est la colonne 1, "b" la colonne 2, etc... ?