Wenn ich habe:
$array = array( 'one' =>'value', 'two' => 'value2' );
Wie bekomme ich die Saite one
zurück $array[1]
?
php
key
associative-array
Mazatec
quelle
quelle
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.quelle
$array = array( 'one' =>'value', 'two' => 'value2' ); $allKeys = array_keys($array); echo $allKeys[0];
Welches wird ausgegeben:
quelle
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];
quelle
Oder wenn Sie es in einer Schleife brauchen
foreach ($array as $key => $value) { echo $key . ':' . $value . "\n"; } //Result: //one:value //two:value2
quelle
$array = array( 'one' =>'value', 'two' => 'value2' ); $keys = array_keys($array); echo $keys[0]; // one echo $keys[1]; // two
quelle
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!
quelle
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.
quelle
Die Schlüsselfunktion hat mir geholfen und ist sehr einfach:
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:
quelle
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 ''; }
quelle