Práce s dvourozměrným polem

12 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Ahoj, měl bych 2 otázečky :-) 1. jak správně zapsat: $figurka['1']['1'] = 0; $figurka['1']['2'] = 0; $figurka['1']['3'] = 0; $figurka['1']['4'] = 0; $figurka['2']['1'] = 0; $figurka['2']['2'] = 0; $figurka['2']['3'] = 0; $figurka['2']['4'] = 0; $figurka['3']['1'] = 0; $figurka['3']['2'] = 0; $figurka['3']['3'] = 0; $figurka['3']['4'] = 0; $figurka['4']['1'] = 0; $figurka['4']['2'] = 0; $figurka['4']['3'] = 0; $figurka['4']['4'] = 0; a jak docílit toho, že bych se zeptal (pomocí php) jestli nějaká hodnota toho pole (všech figurek) se rovná nějakému číslu a ono by vypsalo všechny ty figurky i s obouma parametrama. S dvojrozměrným polem dělám poprvý, takže se moc nevyznam :-) PS: dělám náhodně generované člověče nezlob se a řeším vyhazování figurek, kdyby měl někdo zájem tak rozpracovanej k´d je na nesro.wz.cz/cry
  2. tak zkus treba pomoci function obsahujeHodnotu($figurka){ while (list(, $value) = each ($figurka)) { while (list(, $value2) = each ($value)) if($value2==$hledane){ return true; } } } return false; } psal jsem to z patra tak nevim jeslti neni nekde preklep :) jinak bys mohl while nahradit foreach , ale foreach bych rekl ze je malinko narocnejsi na pamet (vytvari druhe duplicitni pole-nelze v prubehu foreach menit hodnoty pole :) )...
  3. for($i=1;$i<=4;$i++) { for($j=1;$j<=4;$j++) { $figurka[$i][$j] = 0; } } Toto je zakladni cyklus pro dvourozmerne pole. Tento priklad zpusobi vynulovani vsech hodnot, tedy ten prvni priklad. Pro zjistovani/upravy hodnot pole (pozice figurky), muzes pouzit primy zapis (pokud vis indexy): echo "2.figurka 1.hrace je na pozici ". $figurka[1][2]; Nebo pouzit vyse uvedeny cyklus (pokud nevis indexy). Tim, ze dovnitr druheho cyklu pouzijes odpovidajici algoritmy/podminky. Treba pro zjisteni, ktere figurky jsou na dane pozici: for($i=1;$i<=4;$i++) { for($j=1;$j<=4;$j++) { if($figurka[$i][$j] == $pozice) echo "Na pozici $pozice je hrac $i s figurkou $j"; } } A tak dale. Proste tady mas nejaky zaklad ;)
  4. dik moc Tomík: Tvuj script by měl vypysovat $figurka[1][1] (třeba), vadí hodně, že to neni $figurka['1']['1'] ? nebo je ten druhý zápis špatně? btw: že to bude jednoduchý sem čekal, ale že takhle :D
  5. Pokud ocekavas jen cislo, tak uvozovky nemusi byt. U retezce uz uvozovky byt musi.
  6. dik
  7. "že to bude jednoduchý sem čekal, ale že takhle" A co jsi čekal? Práce s poli je jednoduchá sama o sobě ;)
  8. <HTML>Freeze: "jinak bys mohl while nahradit foreach , ale foreach bych rekl ze je malinko narocnejsi na pamet (vytvari druhe duplicitni pole-nelze v prubehu foreach menit hodnoty pole :) )..." Ono je to v podstate trosku jinak. Duplicitni pole se nevytvari (neni duvod), pouze precte klic a hodnotu prvku a vlozi je do promennych (i kdyz ve vicerozmernem poli ano, vytvori promennou jako pole) Nicmene i hodnoty pole lze v prubehu menit pomoci reference (neni automaticka): foreach ($pole as &$value) { $value = $value * 2; } a je to mozna lepsi, protoze z hlediska bezpecnosti si tak kazdy musi urcit zda chce hodnoty menit a "vice si to uvedomuje" nez kdyby se jednalo o referenci automaticky</HTML>
  9. Ještě mě zarazila jedna věc. Tomík napsal: echo "Na pozici $pozice je hrac $i s figurkou $j"; a já to už automaticky přepsal na: echo 'Na pozici '.$pozice.' je hrac '.$x.' s figurkou $y'; dělam to špatně, nebo je to jedno? Jen abych si nezvykal (protože PHP neumim) na špatný věci :-)
  10. Nevim jak ostatní, ale já preferuju skládání řetězců pomocí teček (tak jak jsi napsal ... ). echo 'Na pozici '.$pozice.' je hrac '.$x.' s figurkou '.$y; //ale možná to ostatní vidí jinak ;) =Richard= doted jsem zil v domeni, ze foreach nedonutis upravovat puvodni hodnoty pole ani pomoci & ... celkem mi to vyplývá mimochodem uz i z tohoto Notice z cz.php.net (cituji): "Poznámka: Uvědomte si také, že foreach pracuje na kopii specifikovaného pole, nikoli na poli samotném, proto ukazatel na pole není modifikován tak, jako příkazem each() a změny na vráceném elementu se na původním poli neprojeví."
  11. <HTML>"doted jsem zil v domeni, ze foreach nedonutis upravovat puvodni hodnoty pole ani pomoci &" A taky jsi se nemýlil, ale <b>doporučuji</b> (důrazně) nespoléhat na český překlad PHP manuálu, téměř u každé funkce tam něco není a většinou vždy to důležité. V tomto případě: "As of PHP 5, you can easily modify array's elements by preceding $value with &. This will assign reference instead of copying the value." Mohl jsem se zmínit o tom že v php4 to nešlo, ale php4 už není a v nejbližší době i WZ přejde na PHP5, takže důležité je to, že v php to jde (a když dnes říkám php, myslím php5)</HTML>
  12. Super, doufam, ze bude PDO a SQLite :) Sry za OT

← Zpět na všechna témata