Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2011, 01h55   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Comment sortir d'une boucle lorque que mon array ne contient pas le nombre

Bonjour à tous,

Je me prend le chou depuis plusieurs heures à faire ceic

J'ai un array
Code PHP :
1
2
3
4
5
6
$conteneur=array(
'0' =>'0',
'1' => '1',
'2' => '2',
'3' => '5',
'4' => '6');

J'utilise for pour parcourir la boucle
j'ai besoin de donner une valeur à une varibale qui coresspond au premier "vide".
Dans mon cas sa sera 3, car en partant de 0, c'est le premier chiffre qui ne suit pas l'incrémentation.

Si par exemple j'avais ce tableau
Code PHP :
1
2
3
4
5
6
7
8
9
10
$conteneur=array(
'0' =>'0',
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '6',
'6' => '7',
'7' => '9'
);

J'aurais besoin de 5 et pas 8, car 5 est le premier "trou" dans mon incrémentation.

Je n'arrive pas à trouver une fonction qui peut me trouver cette valeur.
Auriez-vous une idée?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 09h19   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
Code :
1
2
3
4
5
6
7
8
<?php
	foreach ($conteneur as $index=>$value) {
		if ($index!=$value) { // valeur différente de l'index
			echo 'Le 1er indice est '.$index.' ('.$index.' => '.$value.')<br />';
			break; // on sort de la boucle
		}
	}
?>
Pour les 2 exemples, on obtient :
Citation:
Le 1er indice est 3 (3 => 5)
Le 1er indice est 5 (5 => 6)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2011, 09h23   #3
Membre confirmé
 
Homme Clément
Développeur informatique
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 277
Points : 277
Essaye ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$index = 1;
$trou_index = -1;
$tab_length = count($conteneur);
// Tant que l'on a pas trouvé de trou, et que le tableau n'a pas été entièrement parcouru
while (($index < $tab_length) && ($trou_index == -1)) {
	// Récupération de valeur du tableau à $index
    $valeur = $conteneur[$index];
	// Simplement regarder si l'index est different de valeur
	if ($valeur != $index) {
		// Si oui, c'est qu'on a trouvé un trou
		// Je te laisse écrire ici ce qu'il faut (^^)
	}
	$index++;
}
Climoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 09h32   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

A noter que dans un tableau, les clés texte contenant des valeurs numériques sont automatiquement castées en integer :
Code :
array('0' => '0', '1' => '1', '01' => '1') équivaut à array(0 => '0', 1 => '1', '01' => '1')
Regardes ici
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 12h42   #5
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Super merci beaucoup pour vos réponses!
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h34.


 
 
 
 
Partenaires

Hébergement Web