WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Php array, hitta nyckel. (https://www.wn.se/forum/showthread.php?t=14584)

linus1 2006-06-10 18:48

Finns det någon funktion som ger tillbaka nyckeln för en särskilld array.

Kod:

$arr['1'] = "fot";
$arr['2'] = "bolls";
$arr['3'] = "vm";

Jag vem att den $arr innehåller "bolls" men jag vet inte vilken nyckel. Hur får jag ut det?

hehe lite svårt och förklara men det gick förhoppningsvis fram.

tydal 2006-06-10 18:54

array_search, t.ex.:

$nyckel = array_search("bolls", $arr);

PgD 2006-06-10 22:01

Eller array_flip. Kan kanske vara snabbare om man har stora arrayer. Om man inte först måste göra en kopia av arryen förstås.

<?php

$arr['1'] = "fot";
$arr['2'] = "bolls";
$arr['3'] = "vm";

$arr = array_flip($arr);

$nyckel = $arr['bolls'];

?>

Blackex 2006-06-22 11:25

Se bara till att du inte har en array där samma värde finns flera gånger :) Då finns det ju flera matchande nycklar!

martine 2006-06-27 00:51

Citat:

Originally posted by PgD@Jun 10 2006, 22:01
Eller array_flip. Kan kanske vara snabbare om man har stora arrayer.
Tvivlar på att flippa hela arrayen skulle vara snabbare än att använda php:s inbyggda array_search()...

Dessutom finns det ju en hel del problem med det, bl a samma värde som Blackex påpekat, och det förutsätter att värdet inte är en sträng med märkliga tecken eller t ex en array eller ett objekt. Att flippa arrayen bara för att få reda på nyckeln är lite överdrivet och dålig programmeringspraxis eftersom risken är stor att man någon annanstans använder arrayen och glömmer att man flippat den. Använd array_search() istället, eller någon av de andra fina array-funktionerna för att få tag på nyckeln.


Alla tider är GMT +2. Klockan är nu 02:08.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson