2017-09-05 1 views
1

Ich bin in Bash Skripting.Bash Sortierung Tabelle assoziative Array

Ich habe ein Problem mit meinem assoziativen Array, wenn ich so einen Datensatz in meinem Array setzen:

declare -A arr_list_people_name 

So wie ich Text in einer Schleife in meinem assoziativen Array setzen (put Text sortierte):

arr_list_people_name[$peopleId]+=$peopleName 

die Art, wie ich meine Array lesen:

for KEY in "${!arr_list_people_name[@]}"; do 
    # Print the KEY value 
    echo "Key: $KEY" 
    # Print the VALUE attached to that KEY 
    echo "Value: ${arr_list_people_name[$KEY]}" 
done 

Meine Liste ist in der gleichen Reihenfolge nicht auf die Art und Weise vergleichen I nahm es auf. Ich möchte jedoch die gleiche Reihenfolge finden, wie ich sie in meinem Array aufgenommen habe (sortiert nach Wert oder Schlüssel).

Haben Sie eine Idee, wie Sie das schaffen?

+0

In den meisten (Scripting?) Sprachen sind assoziative Arrays (oder Hashes) inhärent ungeordnete Gruppen von Name: Wert-Paaren. –

Antwort

1

Sie müssen ein zweites indiziertes Array verwenden, um die Schlüssel in der Reihenfolge zu speichern, in der Sie sie zu arr_list_people_name hinzufügen.