Pieduriens Posted August 15, 2013 Report Posted August 15, 2013 Labvakar! Vai nu ir pārāk vēls, acis izkaltušas un galva pārkarsusi, bet nekādi nevaru salikt konstrukciju.. // Ja id divos laukos nav norādīts, tad apakš foreach nav jāpilda..// Ja id divos laukos ir vienāds, tad jāpilda viena sekcija// Ja id divos laukos ir dažāds, tad jāpilda otra sekcija. Šie trīs punkti būtu viegli izpildāmi izmantojot parastu elseif, bet klāt nāk: // Ja vienā no diviem laukiem ir id, izmantot to id kurš ir aizpildīts. Paldies ;) Quote
mandarīnpīle Posted August 15, 2013 Report Posted August 15, 2013 //Ja aizpilditi abi ID if(!empty($id1, $id2)) { if($id == $id2){ //function viena_sekcija(); } else{ //function otra_sekcija(); } } //Ja aizpildits viens no ID if( (empty($id1) && !empty($id2)) || (empty($id2) && !empty($id1)) ){ if(empty($id1)) { $izmantojams_id = $id2; } else{ $izmantojams_id = $id1; } //function cita_sekcija($izmantojams_id); } //Ja ID abos laukos nav noradits, nekas netiek darits Quote
Pieduriens Posted August 16, 2013 Author Report Posted August 16, 2013 Hmm paldies par Ideju, bet intuitīvi jūtu, ka tas būtu jāveic vienā blokā.. Quote
jurchiks Posted August 16, 2013 Report Posted August 16, 2013 Kaut kā tu baigi nesaprotami esi uzrakstījis. // Ja id divos laukos nav norādīts, tad apakš foreach nav jāpildaKur tam foreach jāatrodas un vai viņam ir nepieciešams kāds no tiem ID? // Ja id divos laukos ir vienāds, tad jāpilda viena sekcija // Ja id divos laukos ir dažāds, tad jāpilda otra sekcija ... // Ja vienā no diviem laukiem ir id, izmantot to id kurš ir aizpildīts Kur "izmantot to id kurš ir aizpildīts"? Tajā vienā/otrā sekcijā? Jeb pavisam kur citur? Quote
mandarīnpīle Posted August 16, 2013 Report Posted August 16, 2013 Hmm paldies par Ideju, bet intuitīvi jūtu, ka tas būtu jāveic vienā blokā.. Uz intuiciju gan nevajag programmet.. Bet ja, es neesmu parliecinats vai tas bija tas, ko tu gribeji. Quote
e-remit Posted August 16, 2013 Report Posted August 16, 2013 Hmm paldies par Ideju, bet intuitīvi jūtu, ka tas būtu jāveic vienā blokā.. Pieņemot, ka tev ir PHP5.4: $loop_arr = array( array("id1"=>1,"id2"=>2), array("id1"=>null,"id2"=>2), array("id1"=>1,"id2"=>null), array("id1"=>null,"id2"=>null), ); // Ja id divos laukos nav norādīts, tad apakš foreach nav jāpilda.. foreach($loop_arr as $r) if ($r["id1"] || $r["id2"]) { if ($r["id1"] == $r["id2"]){ // Ja id divos laukos ir vienāds, tad jāpilda viena sekcija echo $r["id1"]; } else if ($r["id1"] && $r["id2"]){ // Ja id divos laukos ir dažāds, tad jāpilda otra sekcija. echo $r["id1"] . " | " . $r["id2"]; } else { // Ja vienā no diviem laukiem ir id, izmantot to id kurš ir aizpildīts. echo $r["id1"] ?: $r["id2"]; } echo "\n<br>\n"; } Protams, var vēl īsāk, īpaši, ja zinātu, kā tu apstrādāsi tos ID. Quote
jurchiks Posted August 16, 2013 Report Posted August 16, 2013 "echo $r["id1"] ?: $r["id2"];" - wat? kur ir "true" kods? Quote
spainis Posted August 16, 2013 Report Posted August 16, 2013 Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise. http://php.net/manual/en/language.operators.comparison.php Quote
jurchiks Posted August 16, 2013 Report Posted August 16, 2013 Well shit, nepietiek ar visiem citiem stulbumiem... Quote
Pieduriens Posted August 16, 2013 Author Report Posted August 16, 2013 Ok, vajadzēja būt nedaudz konkrētākam.. Ir Masīvs: http://pastebin.com/weCm73Av Trīs iespējamās varbūtības. 1): [default_billing] => 4 [default_shipping] => 5 2): [default_billing] => [default_shipping] => 3) [default_billing] => 6 [default_shipping] => 6 Scenārijs, bēc id iegūšanas mans arrays tiek papildīnāts ar $array[$i]['shipping'] kā arī ja id atskjiras ar $array[$i]['billing'] Quote
Kasspars Posted August 16, 2013 Report Posted August 16, 2013 Well shit, nepietiek ar visiem citiem stulbumiem... Kamon, šitas nav stulbums, bet gan ērtība Quote
marrtins Posted August 17, 2013 Report Posted August 17, 2013 (edited) Ja kas nav jurčikprāt, tad tas ir stulbums ;) !$jur4ikprat?stulbums(); Edited August 17, 2013 by marrtins Quote
Леший Posted August 17, 2013 Report Posted August 17, 2013 (edited) Man tas "īsais" ternary neliekas īpaši lasams. Labāk izmantot ko tādu: isset($asdf) || print(1); !isset($asdf) && print(2); vai vēl lasamāk: isset($asdf) OR print(1); !isset($asdf) AND print(2); Edited August 17, 2013 by Леший Quote
jurchiks Posted August 17, 2013 Report Posted August 17, 2013 Ja kas nav jurčikprāt, tad tas ir stulbums ;) !$jur4ikprat?stulbums(); Tas ir mans viedoklis, ģēnij... Tev liekas, ka tā ir baigi laba ideja - izlaist "true" statementu? Cik daudzi programmētāji, tavuprāt, zin par tādu brīnumu? Quote
Pieduriens Posted August 17, 2013 Author Report Posted August 17, 2013 Paldies visiem, idejas iegūtas, bet flame ware jau nav nepieciešams :) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.