Подтвердить что ты не робот

PHP - Получение индекса элемента из массива

Как я могу получить текущий номер элемента при переходе массива?

Я знаю о count(), но я надеялся, что там будет встроенная функция для получения текущего индекса поля, без необходимости добавлять дополнительную переменную счетчика.

вот так:

foreach($array as $key => value)
  if(index($key) == count($array) ....
4b9b3361

Ответ 1

Вы должны использовать функцию key().

key($array)

должен вернуть текущий ключ.

Если вам нужна позиция текущего ключа:

array_search($key, array_keys($array));

Ответ 2

Массивы 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

Ответ 3

foreach() {
    $i++;
    if(index($key) == $i){}
    //
}

Ответ 4

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)

Ответ 5

Невозможно получить позицию, которую вы действительно хотите.
Для ассоциативного массива для определения последней итерации вы можете использовать уже упомянутую переменную счетчика или сначала определить последний элемент:

end($array);
$last = key($array);
foreach($array as $key => value)
  if($key == $last) ....

Ответ 6

массив не содержит индекс, когда элементы ассоциативны. Массив в php может содержать смешанные значения:

$var = array("apple", "banana", "foo" => "grape", "carrot", "bar" => "donkey");   
print_r($var);

Дает вам:

Array
(
    [0] => apple
    [1] => banana
    [foo] => grape
    [2] => carrot
    [bar] => donkey
)

Что вы пытаетесь достичь, так как вам нужно значение индекса в ассоциативном массиве?