2016-07-17 10 views
2

Ich habe eine einfache Anordnung, die alle Tasten nummerieren sind durch eine ganze Zahl :Wie ändert man den Array-Schlüssel, mit einer einfachen Summierung?

$ArrOne = array (

"-5" => "x", 
"-4" => "b", 
"-3" => "s", 
"-2" => "e", 
"-1" => "a", 
"0" => "d", 
"1" => "k", 
"2" => "l", 
"3" => "w", 
"4" => "y", 
"5" => "c" 

); 

Und, ich habe ein ganzzahlige Variable, wie: $VarKey.


Jetzt möchte ich alle Schlüssel eine einfache Summierung zu tun (von $ArrOne), mit bestimmtem Wert aus: $VarKey. Das Ausgabe-Array lautet: $ArrTwo; zum Beispiel:

  • Wenn $VarKey = -1; wird $ArrTwo sein:
 $ArrTwo = array (

    "-6" => "x", 
    "-5" => "b", 
    "-4" => "s", 
    "-3" => "e", 
    "-2" => "a", 
    "-1" => "d", 
    "0" => "k", 
    "1" => "l", 
    "2" => "w", 
    "3" => "y", 
    "4" => "c" 

    );
  • Wenn $VarKey = 0; wird $ArrTwo nicht geändert werden.

  • Wenn $VarKey = +1; wird $ArrTwo sein:

 $ArrTwo = array (

    "-4" => "x", 
    "-3" => "b", 
    "-2" => "s", 
    "-1" => "e", 
    "0" => "a", 
    "1" => "d", 
    "2" => "k", 
    "3" => "l", 
    "4" => "w", 
    "5" => "y", 
    "6" => "c" 

    );

Wie dieses Problem zu lösen, mit PHP Sprache?

+0

Wenn meine Frage nicht klar ist, bitte Kommentar unten. Ich werde es sehen; dann werde ich versuchen, mehr zu erklären. – 16ctt1x

+0

Was ist der Unterschied zwischen 'If $ MyInteger = -1 ;, $ OutArray wird nicht geändert 'und' If $ MyInteger = -1 ;, wird $ OutArray' sein? –

+0

@SergeyKhalitov, es tut mir leid, da ist meine Sorglosigkeit. Ich habe meine Frage aktualisiert, danke für Ihren Kommentar. – 16ctt1x

Antwort

1

Der einfachste Weg ist foreach zu verwenden, über den Eingang Array zu durchlaufen und ein neues Array bauen:

$outArray = array(); 

foreach ($inpArray as $key => $value) { 
    $outArray[$key + $MyInteger] = $value; 
} 

// That's all, folks! 
+0

Ich denke du meinst "akzeptierte Antwort". Eine Flagge ist eine andere Sache; Es wird verwendet, um eine Frage oder eine Antwort in die Aufmerksamkeit des Moderators zu bringen, da es schwerwiegende Probleme gibt: Spam, Vandalismus, eine Antwort, die die Frage nicht beantwortet usw. – axiac

Verwandte Themen