Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 2 pętle, multiple foreach i insert do SQL
Forum PHP.pl > Forum > PHP
Aquarius
witam,
od rana siedzę przy tym, ale niestety siedzę w czarnej... a w google nie znalazłem nawet podobnego problemu aby zaczęrpnąć jakichś wskazówek, sytuacja wygląda następująco, mam pewną pętlę z jakąś ilością liczb i liter
dajmy na to Array $a
chcę aby każde z tych oznaczeń z pętli został dodany do każdej frazy z innej pętli, robiłem to więc w ten sposób:
  1. foreach ($a as $i) {
  2. $model = "'accord$i', 'civic$i', 'prelude$i', 'cr-v$i', 'astra$i', 'vectra$i'";
  3. }


dotąd wszystko gra, ale mam też jeszcze jedną pętlę, dajmy na to Array $b
o powiedzmy takiej zawartości:
  1. $marka = "'honda', 'honda', 'honda', 'honda', 'opel', 'opel'";


chciałbym to wszystko dodać do bazy w ten sposób aby oczywiście każdy rekord z $marka odpowiadał temu z $model, bo oczywiście ich ilość jest taka sama w każdej pętli, w jaki sposób mógłbym to zrobić?
domyślam się że muszę wykonać kolejne foreach, problemem jest tylko zmienna $i która jest dopisywana do elementów z pierwszego foreach
pehaperowiec
a nie prościej użyć pętli while i w tej pętli łaczyć ze sobą elementy tych dwóch tablic a później je zapisywac?
jacobson
a moze

  1. for($i=0;$i<sizeof($model);$i++){
  2.  
  3. $wynik = $model[$i] . $marka[$i];
  4.  
  5. }


mozesz jeszcze przed tym sprawdzac czy na pewno obie tablice maja tyle samo elementow
pehaperowiec
1) While jest szybsze od fora
2) Sprawdzanie rozmiaru tablicy z każdym powtórzeniem pętli jest niewydajne
3)
Cytat
mozesz jeszcze przed tym sprawdzac czy na pewno obie tablice maja tyle samo elementow
Algorytm jest błędny...
Aquarius
EDIT
działa pięknie, wystarczyła krótka pętla while smile.gif
  1. $r=0;
  2. while($r < count($model)) {
  3. echo $marka[$r]." - ".$model[$r].", ";
  4. $r++;
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.