Wenn ich habe:
$array = array( 'one' =>'value', 'two' => 'value2' );
Wie bekomme ich die Saite one
zurück $array[1]
?
Antworten:
Das tust du nicht. Ihr Array hat keinen Schlüssel [1]
. Du könntest:
Erstellen Sie ein neues Array, das die Schlüssel enthält:
$newArray = array_keys($array);
echo $newArray[0];
Aber der Wert "Eins" ist $newArray[0]
nicht [1]
.
Eine Abkürzung wäre:
echo current(array_keys($array));
Holen Sie sich den ersten Schlüssel des Arrays:
reset($array);
echo key($array);
Holen Sie sich den Schlüssel, der dem Wert "Wert" entspricht:
echo array_search('value', $array);
Dies hängt alles davon ab, was genau Sie tun möchten. Tatsache ist, [1]
dass es in keiner Weise "eins" entspricht, wie Sie es drehen.
Wenn Sie nur mit einem Schlüssel arbeiten möchten, können Sie dies mit einer einzigen Zeile erreichen, ohne ein Array für alle Schlüssel speichern zu müssen:
echo array_keys($array)[$i];
Oder wenn Sie es in einer Schleife brauchen
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
Sie könnten es so machen:
function asoccArrayValueWithNumKey(&$arr, $key) {
if (!(count($arr) > $key)) return false;
reset($array);
$aux = -1;
$found = false;
while (($auxKey = key($array)) && !$found) {
$aux++;
$found = ($aux == $key);
}
if ($found) return $array[$auxKey];
else return false;
}
$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...
Ich habe den Code noch nicht ausprobiert, bin mir aber ziemlich sicher, dass er funktionieren wird.
Viel Glück!
Wenn es das erste Element ist, dh $array[0]
Sie können versuchen:
echo key($array);
Wenn es das zweite Element ist, dh $array[1]
Sie können versuchen:
next($array);
echo key($array);
Ich denke, diese Methode sollte verwendet werden, wenn das erforderliche Element das erste, zweite oder höchstens dritte Element des Arrays ist. In anderen Fällen sollten Schleifen verwendet werden, da sonst die Lesbarkeit des Codes abnimmt.
Die Schlüsselfunktion hat mir geholfen und ist sehr einfach:
Die Funktion key () gibt einfach den Schlüssel des Array-Elements zurück, auf das der interne Zeiger gerade zeigt. Der Zeiger wird in keiner Weise bewegt. Wenn der interne Zeiger über das Ende der Elementliste hinaus zeigt oder das Array leer ist, gibt key () NULL zurück.
Beispiel:
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>
Das obige Beispiel gibt Folgendes aus:
fruit1<br />
fruit4<br />
fruit5<br />
Die Schlüsselfunktion erweitert die Antwort von Ram Dane und ist eine alternative Möglichkeit, den Schlüssel des aktuellen Index des Arrays abzurufen. Sie können die folgende Funktion erstellen:
function get_key($array, $index){
$idx=0;
while($idx!=$index && next($array)) $idx++;
if($idx==$index) return key($array);
else return '';
}