Сегодня мы продолжим наш разговор о массивах в РНР. Итак, давайте посмотрим, что еще можно сделать с массивами. В принципе - что угодно. Например, сортировать элементы массива. Но об этом несколько попозже. Теперь коснемся самых распространенный и часто используемых вещей. Только в начале давайте разберемся что есть что. Внутренний указатель, это индекс массива, тот номер, с которого в данный момент будет выбрано значение (или записано соответственно). Для управления им есть специальные функции, но никто не мешает нам использовать в качестве внутреннего указателя переменную. Я например, так и поступаю...
count - count($a) - Если у Вас есть массив с таким именем, Вы можете узнать его размер (индекс максимального значения). Это бывает очень полезно, когда надо искать что-то в массиве, длина которого не есть постоянная величина. Значение может быть присвоено любой другой переменной, и использовано в дальнейшем.
current - возвращает текущий элемент массива. Каждая переменная-массив имеет внутренний указатель, который указывает на один из своих элементов. Кроме того, все элементы в массиве связываются двунаправленным списком указателей для дополнительных целей. Внутренний указатель указывает на первый элемент, который включался в массив пока Вы не выполняли одну из функций, которые модифицируют этот указатель в этом массиве. Функция current() просто возвращает элемент массива, на который в данный момент указывает внутренний указатель. Он никак не перемещает указатель. Если внутренний указатель указывает на конец списка элементов, current() возвращает false(ложно). Внимание: если массив содержит пустые элементы (0 или "", пустую строку), то функция возвратит "false" для каждого из них. Это показывает, что текущий элемент является нулевым значением или вы дошли до конца массива.
end - устанавливаете внутренний указатель массива на последнем элементе. Более подробно смотрите чуть выше.
next - передвигает внутренний указатель массива. Возвращает следующий элемент массива, от текущей позиции внутреннего указателя массива, или "ложь"(false) если нет больше элементов. Внимание: если массив содержит пустые элементы, тогда эта функция возвратит "ложь"(false) и для этих элементов. next() ведет себя подобно current(), с одной лишь разницей. Он передвигает внутренний указатель массива на один элемент вперед прежде, чем возвратить элемент. Это означает что он возвращает значение следующего элемента и передвигает на него внутренний указатель массива. Если при обращении к следующему элементу обнаружен конец массива - next() возвращает "ложь"(false).
prev - перемещает внутренний указатель массива. Возвращает предыдущий элемент массива, или "ложь"(false), если перед текущим нет больше элементов. Внимание: если массив содержит пустые элементы, то функция возвратит "ложь" и на этих элементах. prev() ведет себя подобно next(), за исключением того что он переводит внутренний указатель массива на одну позицию назад, а не вперед.
reset - устанавливает внутренний указатель массива в первом элементе. reset() возвращает внутренний указатель массива в первый элемент. reset() возвращает первый элемент массива. rsort - Сортирует массив в обратном порядке (по убыванию). По алфавиту в том числе. К сожалению, русский алфавит тут не при чем.
sort - сортирует массив. Точно тоже что и предыдущее, только по возрастанию.
Конечно, это далеко не все функции, которые есть в РНР относительно массивов. Но остальное - часто очень специфично и решается иногда более простыми методами.