2012-03-25 5 views
1

Gibt es in Flash ActionScript 3 ein Äquivalent von php's array_flip()? Hier ist die Definition für array_flip:Äquivalent von PHP array_flip in Flash-ActionScript 3?

array_flip() returns an array in flip order, i.e. keys from trans become values and values from trans become keys.

Wenn nicht, was ist die am wenigsten ausführlich und effizienteste Weg, um die gleichen Ergebnisse wie array_flip() in Actionscript 3 zu erreichen?

+0

gute Frage. obwohl ich neugierig bin, welche Situation würde invertieren Schlüssel/Wert-Paare? – TheDarkIn1978

+0

manchmal habe ich Arrays wie arr ["en"] = "English"; arr ["fr"] = "Französisch"; Manchmal kenne ich den Schlüssel und möchte den Wert, anderenfalls kenne ich den Wert und möchte den Schlüssel. array_flip macht Dinge einfach wie array_flip ($ arr) ["English"] wird mir den Schlüssel geben. – John

+0

ah ha! In dieser Situation mit AS3 müssten Sie also nicht unbedingt die Schlüssel/Wert-Paare invertieren. Sie könnten einfach einige AS3-Anweisungen verwenden: antworten Sie unten. – TheDarkIn1978

Antwort

1

Mit dieser Funktion:

function flip(obj:Object):Object 
{ 
    var base:Object = {}; 

    for(var i:String in obj) 
    { 
     base[obj[i]] = i; 
    } 

    return base; 
} 

Demo:

var array:Array = []; 

array["a"] = "a1"; 
array["b"] = "b2"; 
array["c"] = "c3"; 

var newObj:Object = flip(array); 

trace(newObj.b2); // b 
0

können Sie die for each...in Anweisung get the value zu einem Schlüssel zugeordnet verwenden und die for...in Anweisung get the key auf einen Wert zugeordnet verwenden.