Nasıl bir foreach
döngü içinde geçerli dizin alabilirim?
foreach ($arr as $key => $val)
{
// How do I get the index?
// How do I get the first element in an associative array?
}
Sizin örnek kod, sadece olurdu $key
.
Eğer bu ilk ise, örneğin, bilmek istiyorsanız, ikinci, ya da ben döngü th yineleme, bu tek seçenek:
$i = -1;
foreach($arr as $val) {
$i++;
//$i is now the index. if $i == 0, then this is the first element.
...
}
Tabii ki, bu $val == $arr[$i]
dizisi birleşmeli dizi olabilir çünkü anlamına gelmez.
Bu şimdiye kadar en ayrıntılı cevap ve çevresinde yüzen bir $i
değişkeni için ihtiyaç kurtulur. Bu Kip ve Gnarf yanıtları bir combo.
$array = array( 'cat' => 'meow', 'dog' => 'woof', 'cow' => 'moo', 'computer' => 'beep' );
foreach( array_keys( $array ) as $index=>$key ) {
// display the current index + key + value
echo $index . ':' . $key . $array[$key];
// first index
if ( $index == 0 ) {
echo ' -- This is the first element in the associative array';
}
// last index
if ( $index == count( $array ) - 1 ) {
echo ' -- This is the last element in the associative array';
}
echo '<br>';
}
Birine yardımcı olur umarım.
$key
geçerli dizi elemanı için indeks, ve $val
bu dizi elemanının değeridir.
The first element has an index of 0. Therefore, to access it, use $arr[0]
grev>
Dizinin ilk elemanı almak için, bu kullanım
$firstFound = false;
foreach($arr as $key=>$val)
{
if (!$firstFound)
$first = $val;
else
$firstFound = true;
// do whatever you want here
}
// now ($first) has the value of the first element in the array
Sen array_keys()
function as well. Or array_search()
the keys for the "index" of a key. If you are inside a foreach
döngüde ilk öğe alabilir, (kip veya cletus tarafından önerilen) basit artan bir sayaç olsa muhtemelen en etkili yöntemdir.
<?php
$array = array('test', '1', '2');
$keys = array_keys($array);
var_dump($keys[0]); // int(0)
$array = array('test'=>'something', 'test2'=>'something else');
$keys = array_keys($array);
var_dump(array_search("test2", $keys)); // int(1)
var_dump(array_search("test3", $keys)); // bool(false)