D'une valeur à une autre valeur avec foreach

Résolu
Fornikator -  
 Fornikator -
Bonjour,

J'aimerai savoir comment avoir seulement le résulta d'un tableau d'une valeur à une autre valeur avec la fonction foreach en PHP.

<?php
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach($arr as $value) {
echo $value; // Les valeurs a partir de 4 jusqu'à 8.
}
?>


Merci d'avance.

2 réponses

Twinpics
 
Bonsoir,
<?php
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach($arr as $value) {
	if($value >3 && $value <9) {
		echo $value; // Les valeurs a partir de 4 jusqu'à 8.
	}
}
?>

-------------------------------------------------------------------------------------------------------------------------------------------------
<* Suivez-moi sur FesseS-BouC *>
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Pour des tableaux à une dimension comme ça, tu vois :
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Mais en fait, tu as :
$arr = array(
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => 10
);


Donc tu peux faire :
foreach($arr as $key => $value) {
if ($key >= 4 && $key <= 8) {
echo $value;
}
}
0
Fornikator
 
Non je ne peux pas faire ça car c'est après un explode(), comme ceci :

<?php
$explode = explode("\n", $string);
foreach($explode as $foreach) {
$data = explode(" - ", $foreach);
echo $data[0].$data[1]'
}
?>
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Comment est-ce que tu décides quelles valeurs tu veux afficher dans ton foreach ?
Si ce sont toujours les mêmes positions, par exemple toujours les valeurs de 4 à 8, tu peux y aller avec un simple for :
for ($x=0; $x<=count($explode); $x++) {
[opération quelconque]
}

Et tu ne sélectionnes que les valeurs de $x qui t'intéressent.

Sinon, l'autre possibilité est que tu cherches les valeurs dans ton tableau qui affichent certaines particularités. Dans ce cas mets un if-then-else dans ta boucle qui détecte cette particularité ; dans certains cas des expressions régulières seront nécessaires ou du moins, aideront grandement...

Si ça ne répond pas à ta question, peut-être que tu pourrais donner un exemple plus spécifique d'un scénario probable ? Quel genre de valeur peut-on s'attendre à retrouver dans ton script et lesquelles voudrais-tu afficher ?
0
Fornikator
 
Voila mon code :

<?php
$file = file_get_contents('./file.txt');
$explode = explode("\n", $file);
foreach($explode as $foreach) {
	if($i <= 10) { // DANS CET EXEMPLE SA AFFICHE LES 10 PREMIERS.
		$data = explode(" - ", $foreach);
		echo 'ID : '.$data[0].' DATE : '.$data[1].' IP : '.$data[2].' !';
		$i++;
	}
}
?>


Le fichier file.txt contiens :
1504834891 - 1289136968 - XX.XXX.XXX.XX
1504834891 - 1289136968 - XX.XXX.XXX.XX
1504834891 - 1289136968 - XX.XXX.XXX.XX
.........
.........


Dans cet exemple ça affiche les 10 premiers, mais maintenant je vais que sa affiche les 10 prochains à partir de 10 pour faire une pagination...
0
Fornikator
 
Je pense avoir avoir trouvé, si on met ceci cela fonctionne :

<?php
$file = file_get_contents('./file.txt');
$explode = explode("\n", $file);
foreach($explode as $foreach) {
	if($i >= 10 && $i < 10) {
		$data = explode(" - ", $foreach);
		echo 'ID : '.$data[0].' DATE : '.$data[1].' IP : '.$data[2].' !';
		$i++;
	}
}
?>


Quelqu'un propose mieux ?
0
Fornikator
 
Up...
0