Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Petle & inkrementacja numeru zmiennej
Forum PHP.pl > Forum > PHP
elem8
Witam mam trzy zmienne:

  1. <?php
  2. $n1 = jeden;
  3. $n2 = dwa;
  4. $n3 = trzy;
  5. ?>


Teraz pytanie - jak wyswietlic "jeden dwa trzy" za pomoca petli, tak zebym nie musial wpisywac po kolei echo("$n1 $n2 $n3");, tylko zeby numerek sie inkrementowal ? Probowalem tak:

  1. <?php
  2. do {
  3.  
  4. $liczba = 1;
  5.  
  6. echo("$n$liczba ");
  7.  
  8. $liczba++;     } while ($liczba <= 3);
  9. ?>


ale niczego mi to nie zwraca. prosze o pomoc

Z gory wielkie dzieki
pozdrawiam
wookieb
Panie używaj tablic..
http://pl.php.net/manual/pl/language.types.array.php
shark121
Po pierwsze to te zmienne są źle skonstruowane, ponieważ nie możesz umieścić w nich tekstu bez '' (apostrofów)
elem8
tylko ze wtedy i tak bede musial wpisac to jeden dwa trzy do tablicy, a chce stworzyc te liczby az do dwustu, wiec nie usmiecha mi sie wklepywanie kazdej liczby az po dwiescie, jest na to jakis zautomatyzowany sposob ?
kefirek
  1. <?php
  2. $i = 1;
  3. while ($i <= 12) {
  4. echo $i++.'<br>';  
  5. }
  6. ?>
elem8
Cytat(shark121 @ 15.06.2009, 20:47:45 ) *
Po pierwsze to te zmienne są źle skonstruowane, ponieważ nie możesz umieścić w nich tekstu bez '' (apostrofów)

no fakt bo to na szybkosci wklepywalem juz na forum winksmiley.jpg
Cytat(kefirek @ 15.06.2009, 20:51:27 ) *
  1. <?php
  2. $i = 1;
  3. while ($i <= 12) {
  4. echo $i++.'<br>';  
  5. }
  6. ?>

tak tylko ze tutaj chodzi o slowa a nie o numery
chce zeby za pomoca petli automatycznie wyswietlilo mi zmienne $n1 $n2 $n3 .. az do $n200, ktore w echo dadza "jeden dwa trzy ... dwiescie"
elem8
Cytat(belliash @ 15.06.2009, 20:50:48 ) *
  1. <?php
  2. $n1 = 'jeden';
  3. $n2 = 'dwa';
  4. for($a = 1; $a <= 2; $a++) {
  5. $zm = "n$a";
  6. echo $$zm . '<br />';
  7. }
  8. ?>


A powyzszy kod wyswietli
'jeden
dwa'

pytanie po co? tablice lepsiejsze biggrin.gif

to dziala belliash wielkie dzieki:D

teraz wytlumacz mi jesli mozesz ta linijke:

  1. <?php
  2. echo $$zm . '<br />';
  3. ?>


czemu dwa razy '$' ? bo podejrzewam ze to wlasnie dzieki temu dziala to co mi nie dzialalo:)

wielkie dzieki tak czy siak
maly_swd
kiedys cos takiego znalazlem w necie, niestety nie pamietam autora i linku.
wywolujemy np:
echo slownie(189);

uzywalem tego do opisywania nr strony;)

  1. <?php
  2. $slowa = Array(
  3.  'minus',
  4.  
  5.  Array(
  6.    'zerowa',
  7.    'pierwsza',
  8.    'druga',
  9.    'trzecia',
  10.    'czwarta',
  11.    'piąta',
  12.    'szósta',
  13.    'siódma',
  14.    'ósma',
  15.    'dziewiąta'),
  16.  
  17.  Array(
  18.    'dziesiąta',
  19.    'jedenasta',
  20.    'dwunasta',
  21.    'trzynasta',
  22.    'czternasta',
  23.    'piętnasta',
  24.    'szesnasta',
  25.    'siedemnasta',
  26.    'osiemnasta',
  27.    'dziewietnasta'),
  28.  
  29.  Array(
  30.    'dziesiąta',
  31.    'dwudziesta',
  32.    'trzydziesta',
  33.    'czterdziesta',
  34.    'pięćdziesiąta',
  35.    'sześćdziesiąta',
  36.    'siedemdziesiąta',
  37.    'osiemdziesiąta',
  38.    'dziewięćdziesiąta'),
  39.  
  40.  Array(
  41.    'sto',
  42.    'dwieście',
  43.    'trzysta',
  44.    'czterysta',
  45.    'pięćset',
  46.    'sześćset',
  47.    'siedemset',
  48.    'osiemset',
  49.    'dziewięćset'),
  50.  
  51.  Array(
  52.    'tysiąc',
  53.    'tysiące',
  54.    'tysięcy'),
  55.  
  56.  Array(
  57.    'milion',
  58.    'miliony',
  59.    'milionów'),
  60.  
  61.  Array(
  62.    'miliard',
  63.    'miliardy',
  64.    'miliardów'),
  65. );
  66.  
  67. function odmiana($odmiany, $int){ // $odmiany = Array('jeden','dwa','pięć')
  68.  $txt = $odmiany[2];
  69.  if ($int == 1) $txt = $odmiany[0];
  70.  $jednosci = (int) substr($int,-1);
  71.  $reszta = $int % 100;
  72.  if (($jednosci > 1 && $jednosci < 5) &! ($reszta > 10 && $reszta < 20))
  73.    $txt = $odmiany[1];
  74.  return $txt;
  75. }
  76.  
  77. function liczba($int){ // odmiana dla liczb < 1000
  78.  global $slowa;
  79.  $wynik = '';
  80.  $j = abs((int) $int);
  81.  
  82.  if ($j == 0) return $slowa[1][0];
  83.  $jednosci = $j % 10;
  84.  $dziesiatki = ($j % 100 - $jednosci) / 10;
  85.  $setki = ($j - $dziesiatki*10 - $jednosci) / 100;
  86.  
  87.  if ($setki > 0) $wynik .= $slowa[4][$setki-1].' ';
  88.  
  89.  if ($dziesiatki > 0)
  90.        if ($dziesiatki == 1) $wynik .= $slowa[2][$jednosci].' ';
  91.  else
  92.    $wynik .= $slowa[3][$dziesiatki-1].' ';
  93.  
  94.  if ($jednosci > 0 && $dziesiatki != 1) $wynik .= $slowa[1][$jednosci].' ';
  95.  return $wynik;
  96. }
  97.  
  98. function slownie($int){
  99.  
  100.  global $slowa;
  101.  
  102.  $in = preg_replace('/[^-d]+/','',$int);
  103.  $out = '';
  104.  
  105.  if ($in{0} == '-'){
  106.    $in = substr($in, 1);
  107.    $out = $slowa[0].' ';
  108.  }
  109.  
  110.  $txt = str_split(strrev($in), 3);
  111.  
  112.  if ($in == 0) $out = $slowa[1][0].' ';
  113.  
  114.  for ($i = count($txt) - 1; $i >= 0; $i--){
  115.    $liczba = (int) strrev($txt[$i]);
  116.    if ($liczba > 0)
  117.      if ($i == 0)
  118.        $out .= liczba($liczba).' ';
  119.          else
  120.        $out .= ($liczba > 1 ? liczba($liczba).' ' : '')
  121.          .odmiana( $slowa[4 + $i], $liczba).' ';
  122.  }
  123.  return trim($out);
  124. }
  125. ?>
elem8
spoko dzieki wszystkim za pomoc !

jeszcze tylko jedno pytanie - jak ta zmienna podac dalej do cholery winksmiley.jpg np zeby ja przemailowac
  1. <?php
  2. $message .= "$$zm";
  3. ?>

nie dziala, help winksmiley.jpg
elem8
kurde nie moge tego znalezc szukalem pod zmienna w zmiennej i jedyne co znajduje to to http://pl.php.net/manual/pl/language.variables.variable.php

belliash nie pastw sie help winksmiley.jpg
megawebmaster
Po pierwsze - jednak lepiej byłoby skorzystać z tablic w taki banalny sposób
  1. <?php
  2. $dane[1] = 'jeden';
  3. $dane[2] = 'dwa';
  4. # itd...
  5. # lub tak
  6. $dane = array(1 => 'jeden', 2 => 'dwa', 3 => 'trzy');
  7. ?>

niż w taki dziwny i karkołomny sposób wykorzystywać równie dziwne i karkołomne konstrukcje. Wtedy o wiele łatwiej się do tego dostać i dodatkowo łatwo po tym iterować.
elem8
somebody help jak przekazac dalej ta zmienna w zmiennej winksmiley.jpg
elem8
nie moge znalezc nigdzie :/
Pr0100
  1. <?php
  2. $n1 = "jeden";
  3. $n2 = "dwa";
  4. $n3 = "trzy";
  5.  
  6. for($i=1; $i<=3; $i++)
  7. {
  8.  echo ${'n'.$i};
  9. }
  10. ?>


już chyba prościej sie nie da
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.