Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 193.84.198.–

peter
PHP › Nedaří se mi uspořádat pole…
27. 11. 2022   #390645

A nebo, jestli je to mozne (jestli tam mas cisla), muzes opet pouzit foreach.

// for($i=0;$i<count($v['Q_alternative']);$i++) 
foreach ($v['Q_alternative'] as $k2 => $v2):

Ono, totiz, tam muzes mit i necisla a nebo tam nemusis mit vsechna cisla

$x = array (1,5,7)
count($x) // 3

// pak 1. ti ten cyklus neprojede vsechny moznosti
// 2. selhava na $v[0] = 1; $v[0] = undefined; $v[2] = undefined;
// prace s vyhozenim vyjimky (chyby) opet cely cyklus zdrzuje
peter
PHP › Nedaří se mi uspořádat pole…
27. 11. 2022   #390644

ja bych si zkusil vypisovat uplne vsech. At vis, kde prave jsi, zda neco takove existuje a zda to proslo do te compare funkce. A pak zkoumej, jak se to melo seradit a proc to neudelalo.

function myCmpFnc($a, $b)
{
var_dump('myCmpFnc', $a, $b, intval($a) == intval($b), intval($a) < intval($b))
    if (intval($a) == intval($b)) {
        return 0;
    }
    return ( intval($a) < intval($b)) ? -1 : 1;
}


//var_dump($img_list);
foreach ($img_list as $k => $v):
var_dump('foreach1',$img_list[$k]['c'])
  if ($img_list[$k]['c']):
    usort($img_list[$k]['c'],"myCmpFnc");
    var_dump($img_list[$k]['c']);
  else:  
var_dump('foreach2',$img_list[$k]['Q_alternative'])
    for($i=0;$i<count($img_list[$k]['Q_alternative']);$i++)
{
var_dump('foreach3',$img_list[$k]['Q_alternative'][$i])
      usort($img_list[$k]['Q_alternative'][$i],"myCmpFnc");
}
      
  endif;    
endforeach;

var_dump($img_list);

Jo, co mi neni jasne, kdyz uz tam mas k=>v, proc to nevyuzivas.

foreach ($img_list as $k => $v):
var_dump('foreach1',$img_list[$k]['c'])
  if ($v['c']):
    usort($v['c'],"myCmpFnc");
    var_dump($v['c']);
  else:  
var_dump('foreach2',$v['Q_alternative'])
    for($i=0;$i<count($v['Q_alternative']);$i++) // a tohle by slo zrychlit
{
var_dump('foreach3',$v['Q_alternative'][$i])
      usort($v['Q_alternative'][$i],"myCmpFnc");
}
      
  endif;    
endforeach;

---

// for($i=0;$i<count($v['Q_alternative']);$i++) 
$c = count($v['Q_alternative']);
for($i=0;$i<$c;$i++) // rozdil je v tom, ze se count pouzije jen jednou, 
//v opacnem pripade se vola pri kazdem $i, protoze neni jiste, zda se
// pocet polozek nezmenil.
// aspon mam pocit, ze php se nechova jako jine jazyky a brzdi to nepatrne
// celou smycku.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý