$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]
чтобы быть правильным (если это не так, у вас есть логическая ошибка).