Avatar billede mrfunder Nybegynder
17. december 2008 - 16:48 Der er 9 kommentarer og
1 løsning

Returner array_key?

Hej Eksperter.

Jeg har et array der ser således ud; hvordan returnere jeg array "nøglen", hvis jeg eksempelvis har værdien: 13661229459407 - så skal den returnere 3?

Hvordan gør jeg det?

På forhånd tak

Array
(
    [0] => 12161229459414
    [1] => 12221229459393
    [2] => 12711229457123
    [3] => 13661229459407
    [4] => 14591229457235
    [5] => 15031229457192
    [6] => 15421229457190
    [7] => 17581229457236
    [8] => 17591229457193
    [9] => 17921229459405
    [10] => 18451229457238
    [11] => 18761229457124
    [12] => 19361229457126
)
Avatar billede michael_stim Ekspert
17. december 2008 - 16:51 #1
Avatar billede michael_stim Ekspert
17. december 2008 - 16:54 #2
Avatar billede olebole Juniormester
17. december 2008 - 16:56 #3
<ole>

michael_stim >> Sorry, men det er to dårlige løsninger. Array_search er beregnet til den slags:
    http://dk2.php.net/manual/en/function.array-search.php

/mvh
</bole>
Avatar billede olebole Juniormester
17. december 2008 - 16:57 #4
Skal man bruge en løkke, skal man _altid_ bruge en alm. for-løkke, hvis der er mulighed for det. Den performer dramtisk meget bedre end foreach  ;o)
Avatar billede michael_stim Ekspert
17. december 2008 - 16:58 #5
Selvf. skal den bruges hvis man kender værdien (hvilket mrfunder jo klart og tydeligt skriver). *<|;-)  <- Din lille nisse som jeg har stjålet.
Avatar billede michael_stim Ekspert
17. december 2008 - 17:01 #6
Har brugt foreach million gange (mindre kan ikke gøre det) og har aldrig haft problemer med det. Men jo, har hørt det performer bedre (har dog aldrig set tests der bekræfter det). Måske fordi jeg ikke har ledt.
Avatar billede olebole Juniormester
17. december 2008 - 17:05 #7
Du kan lave en test på et par minutter - og så vil du opleve en væsentlig forskel  ;o)

Nu er det ikke til at vide, hvorfra array'et stammer, men er der mulighed for at konstruere det på formen:

Array
(
    12161229459414 => 1,
    12221229459393 => 2,
    12711229457123 => 3,
    13661229459407 => 4,
    14591229457235 => 5,
    15031229457192 => 6,
    15421229457190 => 7,
    17581229457236 => 8,
    17591229457193 => 9,
    17921229459405 => 10,
    18451229457238 => 11,
    18761229457124 => 12,
    19361229457126 => 13
)

- så er en hash-søgning formodentlig nogle hundrede gange mere effektiv end de andre viste. Dette er også voldsomt meget hurtigere end at bruge in_array. Man bør bare undgå værdien 0  ;o)
Avatar billede mrfunder Nybegynder
17. december 2008 - 22:03 #8
Olebole, jeg takker - array-search klarede det :) smid et svar! :- )
Avatar billede olebole Juniormester
18. december 2008 - 09:16 #9
Selvtak  ;o)
Avatar billede olebole Juniormester
19. december 2008 - 16:29 #10
- og tak for points  *<|;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester