Ответ 1
Вы должны использовать функцию key().
key($array)
должен вернуть текущий ключ.
Если вам нужна позиция текущего ключа:
array_search($key, array_keys($array));
Как я могу получить текущий номер элемента при переходе массива?
Я знаю о count(), но я надеялся, что там будет встроенная функция для получения текущего индекса поля, без необходимости добавлять дополнительную переменную счетчика.
вот так:
foreach($array as $key => value)
if(index($key) == count($array) ....
Вы должны использовать функцию key().
key($array)
должен вернуть текущий ключ.
Если вам нужна позиция текущего ключа:
array_search($key, array_keys($array));
Массивы PHP индексируются по индексу и индексируются по строкам. Вы даже можете их смешивать:
array('red', 'green', 'white', 'color3'=>'blue', 3=>'yellow');
Что вы хотите, чтобы индекс был для значения 'blue'
? Это 3? Но это фактически индекс значения 'yellow'
, так что это было бы двусмысленно.
Другим решением для вас является принуждение массива к индексу, индексированному целым числом.
foreach (array_values($array) as $i => $value) {
echo "$i: $value\n";
}
Вывод:
0: red
1: green
2: white
3: blue
4: yellow
foreach() {
$i++;
if(index($key) == $i){}
//
}
function Index($index) {
$Count = count($YOUR_ARRAY);
if ($index <= $Count) {
$Keys = array_keys($YOUR_ARRAY);
$Value = array_values($YOUR_ARRAY);
return $Keys[$index] . ' = ' . $Value[$index];
} else {
return "Out of the ring";
}
}
echo 'Index : ' . Index(0);
Замените ($ YOUR_ARRAY)
Невозможно получить позицию, которую вы действительно хотите.
Для ассоциативного массива для определения последней итерации вы можете использовать уже упомянутую переменную счетчика или сначала определить последний элемент:
end($array);
$last = key($array);
foreach($array as $key => value)
if($key == $last) ....
массив не содержит индекс, когда элементы ассоциативны. Массив в php может содержать смешанные значения:
$var = array("apple", "banana", "foo" => "grape", "carrot", "bar" => "donkey");
print_r($var);
Дает вам:
Array
(
[0] => apple
[1] => banana
[foo] => grape
[2] => carrot
[bar] => donkey
)
Что вы пытаетесь достичь, так как вам нужно значение индекса в ассоциативном массиве?