zinatnieks Posted February 1, 2008 Report Share Posted February 1, 2008 Ir masīvs: http://paste.php.lv/6819 Man ir nepieciešams no šī masīva izgūt ārā datus cikliski. Mēģināju ar foreach ($result as $id=>$item) bet nesanāk šādā veidā, jo kā id tiek uztverts ["Dala"]. Kā man tas būtu pareizi jādara? Jau iepriekš paldies par padomu. Link to comment Share on other sites More sharing options...
andrisp Posted February 1, 2008 Report Share Posted February 1, 2008 Izmanto nestētus foreach. Tev pirmajā līmenī tikai viens elements un tas ir Dala ? foreach($data['Dala'] as $item) { $item['id'] un $item[...] prieksh citiem datiem } Link to comment Share on other sites More sharing options...
zinatnieks Posted February 1, 2008 Author Report Share Posted February 1, 2008 ok paldies :) šitais variants nostrādāja. Link to comment Share on other sites More sharing options...
zinatnieks Posted February 4, 2008 Author Report Share Posted February 4, 2008 Ok tagad man ir jautājums kā dabūt tā masīva lielumu? Es mēģinu vienkārši sizeof($dati) vai arī sizeof($dati['Dala']). Pirmajā gadījumā man viņš izvada vien, bet otrā seši. Bet ja es to masīvu pamainu piemēram pret tādu kurā nav seši masīvi, viņš man tik un tā izvadīs 6, jo acīmredzot viņš skaita to ierakstu skaitu katrā masīvā, bet man vajag lai viņš atgriež man visu masīvu skaitu. Doma apmēram tāda: Šajā gadījumā http://paste.php.lv/6819 viņam man vajadzētu atgriest 6, bet šajā http://paste.php.lv/6831 viņam man vajadzētu atgriest vērtību 5. Kā lai es to panāku? Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 Uztaisi rekursīvu funkciju, ja tev vajag izskaitīt visus elementus visos dziļumos. function sizeof_recursive($array, $count = 0) { $count = sizeof($array); foreach($array as $v) { if (is_array($v)) { $count += sizeof_recursive($v, $count); } } return $count; } Rakstīju tepat uz ātro, nepārbaudīju. Nezinu vai strādās. :] Link to comment Share on other sites More sharing options...
Klez Posted February 4, 2008 Report Share Posted February 4, 2008 varbuut count? Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 Klez http://lv2.php.net/sizeof: sizeof — Alias of count() ;) Link to comment Share on other sites More sharing options...
Aleksejs Posted February 4, 2008 Report Share Posted February 4, 2008 Nevajadzētu tā būt. Domāju, ka sizeof($dati['Dala']) būtu jāatgriež pareizais cipars. Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 Tajā http://paste.php.lv/6831 viņš nekādi nevar atgriezt 5. Tur ir tikai 4 elementi zem $array['Dala']; Link to comment Share on other sites More sharing options...
zinatnieks Posted February 4, 2008 Author Report Share Posted February 4, 2008 Tajā http://paste.php.lv/6831 viņš nekādi nevar atgriezt 5. Tur ir tikai 4 elementi zem $array['Dala']; Nu jā tā arī bija domāts. Es nedaudz pārskaitījos :) Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 Tad tev kā vajadzēja ? Visus elementus saskaitīt ? Vai arī vienkārši sizeof derēja ? Link to comment Share on other sites More sharing options...
zinatnieks Posted February 4, 2008 Author Report Share Posted February 4, 2008 Viss ir ok tavs dotais variants nostrādāja :) Bet tagd ir vēl viena problēma. Man ir klase: class Nosaukums { public $ID; public $parmetrs1; public $parametrs2; public $parametrs3; } $mainigais = new Nosaukums; $mainigais->ID = $_POST["id"]; $mainigais->parametrs1 = 10; $mainigais->parametrs2 = 54; $mainigais->parametrs3 = abc; Kā jau var redzēt es to ID parametru cenšos iegūt no formas kurai ir teksta lauks ar name parametru id. Kad es vienkārši to $_POST["id"] ar echo mēģinu izvadīt ārā viņš normāli izvada to ievadīto id. Bet kad es viņu mēģinu ielasīt šeit $mainigais->ID = $_POST["id"]; un tālāk apstrādāt ar foreach() tads viņš man nestrādā. Un ja es arī ar echo izvadu tieši pirms tā foreach cikla to $mainigais->ID lai pārbaudītu vai viņš ir saņēmis to POST vērtību brīnumainā kārtā arī tad viņš viņu izvada uz ekrāna. Un vēl, ja es $mainigais->ID = $_POST["id"]; vietā ierakstu ar roku to id parametru ($mainigais->ID = 15478;) tad tas foreach cikls nostrādā normāli, bet ar POST parametru nē. Kur varētu būt problēma? Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 foreach taču paredzēts masīviem. Bet tu, kā izskatās, mēģini foreachot cauri parastam skalāram (string vai int) mainīgajam. Link to comment Share on other sites More sharing options...
zinatnieks Posted February 4, 2008 Author Report Share Posted February 4, 2008 Nē. Tā klase paredzēta tikai datu iegūšanai. Pēc tam tiek veidots masīvs kuru arī apstrādā tālāk tas foreach. Kā jau teicu ja es $mainigais->ID = $_POST["id"]; vietā ierakstu ar roku to id parametru ($mainigais->ID = 15478;) tad tas foreach cikls nostrādā normāli, bet ar POST parametru nē. Link to comment Share on other sites More sharing options...
andrisp Posted February 4, 2008 Report Share Posted February 4, 2008 Varbūt tev baigi jūtīgs kods un viņam nepatīk, ka ID tiek padots kā string tips (visi $_POST dati ir string tipa). $mainigais->ID = '15478'; strādā ? Pamēģini $mainigais->ID = (int) $_POST["id"]; Link to comment Share on other sites More sharing options...
Recommended Posts