2017-01-04 6 views
0

Wie man in einem Array dank eines Schlüssels positioniert, und in eine Variable alle Schlüssel, die folgen, den ersten Schlüssel enthalten?PHP - Wie man in einem Array positioniert

mein Schlüssel bekannt: "r"

Der Schlüsselanschlag: "s"

My Array:

['a'] => US 
['r'] => UK 
['v'] => DE 
['s'] => IR  
['k'] => IT  
['o'] => AS 

Ergebnis = r v

+0

Ihr Array ist ungültig. Sie können den 'r'-Index nicht zweimal haben. – RST

+0

Wenn die Antwort von jemandem Ihr Problem gelöst hat, können Sie es als Antwort mit dem großen Kontrollkästchen akzeptieren. – Paolo

Antwort

0

Sie haben die volle Palette zu analysieren und überprüfen Tasten sind innerhalb der erforderlichen Grenzen gesetzt:

foreach($theArray as $key => $value) 
{ 
    if($key >= 'r' && $key < 's') 
    { 
     // will enter here with keys 'r' and 'v' 

     $theArray[ $key ] = $theNewValue 
    } 
} 

Dies vorausgesetzt, Sie alle Werte mit den Tasten fangen wollen, die alphabetisch zwischen „r“ und „s“ sind ("s" ausgeschlossen).

Dies ist nicht ganz klar aus Ihrer Frage.

Statt, wenn Sie die Werte zwischen „r“ und „s“ nach dem Feld, um fangen dann leicht die Codes Änderungen:

$update = false 
foreach($theArray as $key => $value) 
{ 
    if($key == 'r') 
    { 
     $update = true; 
    } 
    elseif($key == 's') 
    { 
     break; 
    } 

    if($update) 
    { 
     // will enter here with keys 'r' and 'v' 

     $theArray[ $key ] = $theNewValue 
    } 
} 
1

nehme an, Sie s Schlüssel hinter r ist, ist hier der Code:

Demo here

$keys = array_keys($array); 
$flip_keys = array_flip($keys); 
$result = array_slice($keys, $flip_keys['r'], $flip_keys['s'] - $flip_keys['r']);