18. maj 2001 - 17:30Der er
22 kommentarer og 1 løsning
in_array på 2.d. array ?
Vi har KÆMPE problemer med at forstå hvordan man bruger php\'s array funktioner på 2 dimensionelle arrays. Vi har flg. kode : [kode] $rate_show = \"SELECT ratings.l_id as rate_test FROM ratings WHERE ratings.u_id = $user\";
if(in_array(15, $rate_user)){ echo \"Tallet 15 findes i arrayet\"; } if bliver IKKE evalueret korrekt da vi med mysql_abstraktioner får et array i et array ! HVORDAN får vi testet om en given værdi findes i et array, der indeholder et array ? Hilsen \'de fortabte\'
Jeg forstår ikke helt hvor i vil hen med det spørgsmål. Hvad er det i helt konkret vil returnere ud fra hvilket datagrundlag ?
At scanne alle rækker igennem med inarray er muligt omend en sløv metode. Hvis i skriver mere om hvad det er i er ude efter tror jeg helt sikkert vi finder frem til en mere optimal løsning
Vi er såmænd bare ude på at man skal kunne teste på om en bestemt værdi, i et array kaldet $rate_user, findes ! Ved : print_r ($rate_user); udskrives: Array ( [0] => Array ( [0] => 15 [rate_test] => 15 ) [1] => Array ( [0] => 16 [rate_test] => 16 ) ) hvilket såvidt jeg kan se er et array af arrays, men hvordan sørgen tester man på e.g. tallet 15 findes ??
fordi checket kører i en løkke og det vil være dumt at tilgå databasen hele tiden mens løkken kører i betragtning af at det er forholdvis få data der skal evalueres!
jeg trækker en query ud fra databasen. her får jeg et reultat i form af en kolonne kaldet $rate_test. query\'ens resultat kommer i multiarrayet $rate_user - det eneste jeg egentligt behøver er et ganske ALMINDELIGT array uden så meget pjat, men det kan man åbenbart ikke få ved en query til databasen ! Jeg ønsker derefter at evaluere på HELE arrayet op imod en bestemt værdi for at se om denne værdi findes......snøft.....det ENESTE jeg faktisk vil er at væres istand til at sige $l_id = 15; if(in_array($l_id, $rate_user){ echo \"YES\"; } MEN det kan man IKKE på et multiarray, men jeg vil IKKE ha\' et multiarray ! Er der nogen måde at pakke et multiarray ud til almindeligt array..... jvf. tidligere kommentar, hvor jeg laver en print_r på multiarrayet - det er sgu\' da for sort ;-)
hvordan undgår jeg at få et array indeholdende flere arrays eller hvordan pakker jeg arrayet ($rate_user)ud i et nyt array, der kun har indholdet af værdierne i de enkelte arrays i det første array....jer er sindsyg ;-)
jeg kan ikke se hvorfor du i første omgang har et multidim. array når du kun selecter én værdi... at pakke et multiarray ud til et stort er ikke noget problem, men er sløvt. der må være en anden vej rundt om jeres problem
ok ! Her kommer det : Vi laver et rate system med login. Login - check er en cookie ($logged_in). Hvis brugeren er logget ind selectes der et location_id (l_id) for at checke hvilke steder vedkommede allerede HAR rate\'et. Den selection afgør om der skal vises et icon udfor en givet location. Hvis brugeren HAR rate\'et stedet skal der nemlig IKKE være noget icon. Vi har flere tabeller (relationelle) og derfor kan vi ikke bare hive alt data ud på én gang. Locationerne der kan rates har et l_id ($l_id) og disse bliver extracted og skrevet ud i en løkke. Nu ville det jo være smart hvis vi for hvergang løkken kører lige tester om $l_id == $rate_test og hvis det er så skal det IKKE være muligt at rate..... Vi ville gøre dette med flg.
if(ISSET($logged_in) $rate_show = \"SELECT ratings.l_id as rate_test FROM ratings WHERE ratings.u_id = $user\";
iøvrigt er det vi laver en del af www.bordfodbold.dk, hvor det skal være muligt at indtaste/rate cafér/barer osv. med bordfodboldborde - ja ja der er så meget.....lige netop derfor skal det kun være muligt at rate én gang så cafér/barer osv. ikke rate\'er sig selv op !
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.