Portál AbcLinuxu, 10. května 2025 05:55

Dotaz: PHP - praca s viacrozmernymi polami, dynamicke naplnanie pola

2.10.2006 15:58 deelite
PHP - praca s viacrozmernymi polami, dynamicke naplnanie pola
Přečteno: 356×
Odpovědět | Admin
Z helpu sa mi to akosi nepodarilo dobre nastudovat, tak som si dovolil poziadat o pomoc na tomto fore.
Mam problem s dynamickym naplnanim a naslednym triedenim viacrozmerneho pola. Pole nacitavam a potom triedim podla nasl. kodu
... tu je nejaky sql dotaz ...
while ($zaznam=MySQL_Fetch_Array($result))
{
     $pole[$i]["priezvisko"] = ..nieco..; 
     $pole[$i]["meno"] = ..nieco..;
     $pole[$i]["vek"] = ..nieco..;
     $i++;
}
foreach ($pole as $key => $row) $vek[$key]  = $row['vek'];
array_multisort($vek, SORT_NUMERIC, SORT_DESC, $pole);
Pokial mi to zbehne v skripte raz, tak nieje problem.
Problem nastane, ked uvedene pole naplnam v nejakom cykle viackrat po sebe. Cize nejako takto:
for(j=1;j<10;j++)
  ... tu je nejaky sql dotaz ...
  while ($zaznam=MySQL_Fetch_Array($result))
  {
     $pole[$i]["priezvisko"] = ..nieco..;
     $pole[$i]["meno"] = ..nieco..;
     $pole[$i]["vek"] = ..nieco..;
     $i++;
  }
  foreach ($pole as $key => $row) $vek[$key]  = $row['vek'];
  array_multisort($vek, SORT_NUMERIC, SORT_DESC, $pole);
  unset($pole);
}

Nefunguje to konkretne vtedy, ked sa vygeneruje pole, ktore je mensie ako pole vygenerovane predtym. Vtedy nezbehne funkcia sort a objavi sa warning: array_multisort(): Array sizes are inconsistent in ...
Co robim blbo? Pocitam, ze pole naplnam zle. Ak vsak dam vypisat pole pred sortom, tak ho vypise OK.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.10.2006 16:50 lscpu
Rozbalit Rozbalit vše Re: PHP - praca s viacrozmernymi polami, dynamicke naplnanie pola
Odpovědět | | Sbalit | Link | Blokovat | Admin
mate nejaky duvod, proc nepouzit ORDER BY v SQL?

problem vidim v tom, ze pole $vek ma vice prvku nez $pole
for(j=1;j<10;j++)
  $pole=array();
  $vek=array();

  ... tu je nejaky sql dotaz ...
  while ($zaznam=MySQL_Fetch_Array($result))
  {
     $pole[$i]["priezvisko"] = ..nieco..;
     $pole[$i]["meno"] = ..nieco..;
     $vek[$i] = $pole[$i]["vek"] = ..nieco..;
     $i++;
  }
  array_multisort($vek, SORT_NUMERIC, SORT_DESC, $pole);
}
3.10.2006 10:10 deelite
Rozbalit Rozbalit vše Re: PHP - praca s viacrozmernymi polami, dynamicke naplnanie pola
Dakujem. Bolo to v tom, ze som nenuloval pole $vek. V jednom sql dotaze to urobit neviem, pretoze v reali to pole dost komplikovane prekopavam vypoctami, pred samotnym sortom. Meno, priezvisko a vek som pouzil iba pre zjednodusenie.

Este raz vdaka.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.