Ich habe this
$input = "nine";
$items = array(
'1' => 'two',
'9' => 'four',
'7' => 'three',
'6'=>'seven',
'11'=>'nine',
'2'=>'five'
);
$keys = array_keys($items);
$size = count($keys);
$foundKey = array_search($input,$items);
if($foundKey !== false)
{
$nextKey = array_search($foundKey,$keys)+1;
echo "your input is: ".$input."\n";
echo "it's key is: ".$foundKey."\n";
if($nextKey < $size)
{
echo "the next key => value is: ".$keys[$nextKey]." => ".$items[$keys[$nextKey]]."\n";
}
else
{
echo "there are no more keys after ".$foundKey;
}
}
die Idee, dass liegt daran, dass die Schlüssel nicht in jeder realen Ordnung i ein vornehmen müssen einfach zu durchqueren, indem Sie alle Schlüssel erhalten und sie in ein Array setzen, so dass ihre ganzzahligen Schlüssel unsere Reihenfolge sind. so '1'
= 0, '9'
= 1, '11'
= 4.
von dort ich finde dann, welcher Schlüssel unserer Eingabe entspricht. Wenn ich es finde, bekomme ich die Position dieser Taste und + 1 (die nächste Taste). Von dort kann ich die Daten in $items
mit dem String-Wert in $keys
an der Position unserer Eingabe +1 verweisen.
Wenn unsere Eingabe 'five'
ist, tritt ein Problem auf, da 'five'
der letzte Wert in unserem Array ist. also überprüft die letzte if-Anweisung, ob der Index für den nächsten Schlüssel kleiner ist als die Anzahl der Schlüssel, da der größte verfügbare Index 5 ist und die Anzahl der Schlüssel 6 ist.
während Sie array_values
verwenden könnten Holen Sie alle Werte in ein Array mit geordneten Integer-Schlüsseln, dadurch verlieren Sie Ihre ursprünglichen Schlüssel, außer Sie haben auch array_keys
verwendet. wenn Sie array_keys
verwenden zuerst, dann gibt es wirklich keine Notwendigkeit array_values
Sie können foreach tun, ohne array_values zuerst zu verwenden. Was löst das auf? –