Как получить числовой ключ нового толкаемого элемента в PHP?

$arr[] = $new_item; 

Можно ли программно получить новый толкаемый предмет?

Обратите внимание, что нет необходимости count($arr)-1 :

 $arr[1]=2; $arr[] = $new_item; 

В приведенном выше случае это 2

max(array_keys($array)) должен делать трюк

end() выполнит задание, чтобы вернуть значение,

если его помощь вам,

вы можете использовать key() после того, как пропустите ключ.

после того, как я написал ответ, я вижу функцию в этой ссылке:

http://www.php.net/manual/en/function.end.php

 function endKey($array){ end($array); return key($array); } 

Самый безопасный способ сделать это:

 $newKey = array_push($array, $newItem) - 1; 

Можешь попробовать:

 max(array_keys($array,$new_item)) 

array_keys($array,$new_item) вернет все ключи, связанные со значением $new_item , как массив.

Из всех этих ключей нас интересует тот, который был добавлен последним и будет иметь max значение.

Вы можете использовать переменную, чтобы отслеживать количество элементов в массиве:

 $i = 0; $foo = array(); $foo[++$i] = "hello"; $foo[++$i] = "world"; echo "Elements in array: $i" . PHP_EOL; echo var_dump($foo); 

если он вновь создан, вы должны, вероятно, сохранить ссылку на элемент. 🙂

Вы можете использовать array_reverse , например:

 $arr[] = $new_item; ... $temp = array_reverse($arr); $new_item = $temp[0]; 

Или вы можете сделать это:

 $arr[] = $new_item; ... $new_item = array_pop($arr); $arr[] = $new_item; 

Если вы используете массив как стек, который вам кажется, вы должны избегать смешивания в ассоциативных ключах. Сюда входит установка $arr[$n] где $n > count($arr) . Придерживайтесь использования функций array_* для манипуляций, и если вы должны использовать индексы, сделайте так, только если 0 < $n < count($arr) . Таким образом, индексы должны оставаться упорядоченными и последовательными, а затем вы можете положиться на $arr[count($arr)-1] чтобы быть правильным (если это не так, у вас есть логическая ошибка).