Portál AbcLinuxu, 11. května 2025 01:28
$trans = new StdClass;
$select = ... //
$i=0; //tak trochu zbytečné, ale chytaje se stébla...
foreach ($select as $o_) { //cyklus nacitani pole
$trans->id = $o_->id; $trans->rada = $o_->rada; $trans->cislo = $o_->cislo;
$a_['zp'][$i] = $trans;
$i++;
//pokud tady vypisi polozku pole, je v poradku
}
//pokracuje podobne nacitani pole pro prvni index cp, zs, cs, ...
// indexy a pracovni promenne
$maxindex = array (
'zp' => isset($a_['zp']) ? count($a_['zp']) : 0, ... );
$cycles = max( $maxindex);
$index = array ('zp' => 0, 'cp' => 0, 'zs' => 0, 'cs' => 0, 'zj' => 0, 'cj' => 0);
$proc = array ('zp' => true, 'cp' => true, 'zs' => true, 'cs' => true, 'zj' => false,'cj' => false); //ridici promenne
// a tady to velke pole zkusím vypsat
while (max($index) < $cycles) {
foreach ($proc as $key=>$value) {
if ($value and $i<$maxindex[$key]) { $pole = $a_[$key][$index[$key]]; $index[$klic]++; }
else {$proc[$key] = false; unset($pole);}
}
}
Pokud si necham vypsat $pole
, tak sice počet položek odpovídá, ale všechny sloupce pro všechny indexy jsou stejné, navíc sice hodnoty v jednotlivých sloupcích existují, ale v dané kombinaci v žádném řádku vstupních dat
2. varianta - zkusil jsem jednorozměrná pole pojmenovaná prvním indexem z předchozího řešení, tedy $zp[], $cp[], ... a použil perlovský zápis, který však hlásí neexistenci proměnné:
$$key[$i]
takovýto zápis v PHP možný není?
Řešení dotazu:
$select = ... // $i=0; //tak trochu zbytečné, ale chytaje se stébla... foreach ($select as $o_) { //cyklus nacitani pole $trans = new StdClass; $trans->id = $o_->id; $trans->rada = $o_->rada; $trans->cislo = $o_->cislo; $a_['zp'][$i] = $trans; $i++; //pokud tady vypisi polozku pole, je v poradku }dál jsem to nezkoumal, nějak z toho nejsem moudrý.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.