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

  1. 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
  2. coeus Messages postés 3296 Statut Membre 120
     
    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
    1. 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
    2. coeus Messages postés 3296 Statut Membre 120
       
      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
    3. 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
    4. 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
    5. Fornikator
       
      Up...
      0