послСдний индСкс массива php

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдний элСмСнт массива Π² PHP

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ способов ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ послСдний элСмСнт массива Π² PHP скриптС. Они Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ своим воздСйствиСм Π½Π° массив (ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘Π½Π½Ρ‹ΠΉ элСмСнт, Π»ΠΈΠ±ΠΎ ΡΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ), Π° Ρ‚Π°ΠΊΠΆΠ΅ своСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1

Начиная с PHP 7.3 Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ послСдний ΠΊΠ»ΡŽΡ‡ массива, это функция array_key_last.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ извлСкаСтся Π½Π΅ послСдний элСмСнт массива, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ послСдний ΠΊΠ»ΡŽΡ‡, поэтому для получСния самого послСднСго Ρ‡Π»Π΅Π½Π° массива эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ это самый быстрый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, поэтому рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PHP 7.3 Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания являСтся совсСм Π½Π΅Π΄Π°Π²Π½ΠΈΠΌ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ, Ρ‚ΠΎ эта вСрсия доступна Π΅Ρ‰Ρ‘ Π½Π΅ Π½Π° всСх сСрвСрах. Для достиТСния совмСстимости, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ провСряСт, доступна Π»ΠΈ функция array_key_last. Если эта функция нСдоступна, Ρ‚ΠΎ создаётся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, которая выполняСт это ΠΆΠ΅ самоС дСйствиС. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этого Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° PHP вСрсии 7.3 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ функция array_key_last, Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ старых вСрсиях Π±ΡƒΠ΄Π΅Ρ‚ задСйствована ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция array_key_last.

Рассмотрим Π΅Ρ‰Ρ‘ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ для Π±ΠΎΠ»Π΅Π΅ старых вСрсий PHP.

НСкоторыС ΠΈΠ· рассмотрСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ излишнС услоТнёнными, Π½ΠΎ это сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ воздСйствиС Π½Π° массив. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½ΡƒΠΆΠ½ΠΎΠ΅ дСйствиС (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта массива) ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ функция array_pop, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сама ΠΏΠΎ сСбС (хотя примСняСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рассмотрСнных конструкциях), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Ρ‘ дСйствия удаляСтся ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹ΠΉ элСмСнт.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 4

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 5

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 6

На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π­Ρ‚Π° опция сбиваСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ массива.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 7

Π’ послСдних вСрсиях PHP этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ стал ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. РСкомСндуСтся Π΅Π³ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ создан Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ массива (Ρ‡Ρ‚ΠΎ являСтся нСдостатком ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°), Π½ΠΎ, ΠΊ соТалСнию, Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сильно ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 8

На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Из-Π·Π° использования count рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° автоиндСксируСмых массивах.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 9

Π’ послСдних вСрсиях PHP этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ стал ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ. РСкомСндуСтся Π΅Π³ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 10

На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π°Π²Ρ‚ΠΎ индСксируСмых массивах.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ВсС рассмотрСнныС ограничСния ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array_key_last, поэтому Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ‘.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПослСдний индСкс массива php

(PHP 4, PHP 5, PHP 7, PHP 8)

end β€” УстанавливаСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ массива Π½Π° Π΅Π³ΠΎ послСдний элСмСнт

ОписаниС

end() устанавливаСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ array Π½Π° послСдний элСмСнт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Массив. Π­Ρ‚ΠΎΡ‚ массив пСрСдаётся ΠΏΠΎ ссылкС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ модифицируСтся Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ массив, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ссылкС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ фактичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта ΠΈΠ»ΠΈ false для пустого массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования end()

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 15 notes

It’s interesting to note that when creating an array with numeric keys in no particular order, end() will still only return the value that was the last one to be created. So, if you have something like this:

If you need to get a reference on the first or last element of an array, use these functions because reset() and end() only return you a copy that you cannot dereference directly:

This function returns the value at the end of the array, but you may sometimes be interested in the key at the end of the array, particularly when working with non integer indexed arrays:

If all you want is the last item of the array without affecting the internal array pointer just do the following:

I found that the function end() is the best for finding extensions on file name. This function cleans backslashes and takes the extension of a file.

Attempting to get the value of a key from an empty array through end() will result in NULL instead of throwing an error or warning becuse end() on an empty array results in false:

Please note that from version 5.0.4 ==> 5.0.5 that this function now takes an array. This will possibly break some code for instance:

this is a function to move items in an array up or down in the array. it is done by breaking the array into two separate arrays and then have a loop creates the final array adding the item we want to move when the counter is equal to the new position we established the array key, position and direction were passed via a query string

When adding an element to an array, it may be interesting to know with which key it was added. Just adding an element does not change the current position in the array, so calling key() won’t return the correct key value; you must first position at end() of the array:

Take note that end() does not recursively set your multiple dimension arrays’ pointer to the end.

// show the array tree
echo ‘

?>

You will notice that you probably get something like this:

The array elements’ pointer are still at the first one as current. So do take note.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

User Contributed Notes 14 notes

A simple trick that can help you to guess what diff/intersect or sort function does by name.

Example: array_diff_assoc, array_intersect_assoc.

Example: array_diff_key, array_intersect_key.

Example: array_diff, array_intersect.

Example: array_udiff_uassoc, array_uintersect_assoc.

This also works with array sort functions:

Example: arsort, asort.

Example: uksort, ksort.

Example: rsort, krsort.

Example: usort, uasort.

?>
Return:
Array ( [ 0 ] => Cero [ 1 ] => Uno [ 2 ] => Dos [ 3 ] => Cuatro [ 4 ] => Cinco [ 5 ] => Tres [ 6 ] => Seis [ 7 ] => Siete [ 8 ] => Ocho [ 9 ] => Nueve [ 10 ] => Diez )
Array ( [ 0 ] => Cero [ 1 ] => Uno [ 2 ] => Dos [ 3 ] => Tres [ 4 ] => Cuatro [ 5 ] => Cinco [ 6 ] => Seis [ 7 ] => Siete [ 8 ] => Ocho [ 9 ] => Nueve [ 10 ] => Diez )
?>

Updated code of ‘indioeuropeo’ with option to input string-based keys.

Here is a function to find out the maximum depth of a multidimensional array.

// return depth of given array
// if Array is a string ArrayDepth() will return 0
// usage: int ArrayDepth(array Array)

Short function for making a recursive array copy while cloning objects on the way.

If you need to flattern two-dismensional array with single values assoc subarrays, you could use this function:

to 2g4wx3:
i think better way for this is using JSON, if you have such module in your PHP. See json.org.

to convert JS array to JSON string: arr.toJSONString();
to convert JSON string to PHP array: json_decode($jsonString);

You can also stringify objects, numbers, etc.

Function to pretty print arrays and objects. Detects object recursion and allows setting a maximum depth. Based on arraytostring and u_print_r from the print_r function notes. Should be called like so:

I was looking for an array aggregation function here and ended up writing this one.

Note: This implementation assumes that none of the fields you’re aggregating on contain The ‘@’ symbol.

While PHP has well over three-score array functions, array_rotate is strangely missing as of PHP 5.3. Searching online offered several solutions, but the ones I found have defects such as inefficiently looping through the array or ignoring keys.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°ΡΡΠΈΠ²Ρ‹

User Contributed Notes 17 notes

For newbies like me.

Creating new arrays:-
//Creates a blank array.
$theVariable = array();

//Creates an array with elements.
$theVariable = array(«A», «B», «C»);

//Creating Associaive array.
$theVariable = array(1 => «http//google.com», 2=> «http://yahoo.com»);

//Creating Associaive array with named keys
$theVariable = array(«google» => «http//google.com», «yahoo»=> «http://yahoo.com»);

Note:
New value can be added to the array as shown below.
$theVariable[] = «D»;
$theVariable[] = «E»;

To delete an individual array element use the unset function

output:
Array ( [0] => fileno [1] => Array ( [0] => uid [1] => uname ) [2] => topingid [3] => Array ( [0] => touid [1] => Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => 3 [1] => 4 ) ) [2] => touname ) )

when I hope a function string2array($str), «spam2» suggest this. and It works well

hope this helps us, and add to the Array function list

Another way to create a multidimensional array that looks a lot cleaner is to use json_decode. (Note that this probably adds a touch of overhead, but it sure does look nicer.) You can of course add as many levels and as much formatting as you’d like to the string you then decode. Don’t forget that json requires » around values, not ‘!! (So, you can’t enclose the json string with » and use ‘ inside the string.)

Converting a linear array (like a mysql record set) into a tree, or multi-dimensional array can be a real bugbear. Capitalizing on references in PHP, we can ‘stack’ an array in one pass, using one loop, like this:

$node [ ‘leaf’ ][ 1 ][ ‘title’ ] = ‘I am node one.’ ;
$node [ ‘leaf’ ][ 2 ][ ‘title’ ] = ‘I am node two.’ ;
$node [ ‘leaf’ ][ 3 ][ ‘title’ ] = ‘I am node three.’ ;
$node [ ‘leaf’ ][ 4 ][ ‘title’ ] = ‘I am node four.’ ;
$node [ ‘leaf’ ][ 5 ][ ‘title’ ] = ‘I am node five.’ ;

Hope you find it useful. Huge thanks to Nate Weiner of IdeaShower.com for providing the original function I built on.

If an array item is declared with key as NULL, array key will automatically be converted to empty string », as follows:

A small correction to Endel Dreyer’s PHP array to javascript array function. I just changed it to show keys correctly:

function array2js($array,$show_keys)
<
$dimensoes = array();
$valores = array();

Made this function to delete elements in an array;

?>

but then i saw the methods of doing the same by Tyler Bannister & Paul, could see that theirs were faster, but had floors regarding deleting multiple elements thus support of several ways of giving parameters. I combined the two methods to this to this:

?>

Fast, compliant and functional πŸ˜‰

//Creating a multidimensional array

/* 2. Works ini PHP >= 5.4.0 */

var_dump ( foo ()[ ‘name’ ]);

/*
When i run second method on PHP 5.3.8 i will be show error message «PHP Fatal error: Can’t use method return value in write context»

array_mask($_REQUEST, array(‘name’, ’email’));

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°ΡΡΠΈΠ²Ρ‹

β€” это коллСкция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, индСксированных ΠΈ увязанных Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π² ΠΎΠ΄Π½Ρƒ ΡΡƒΠΏΠ΅Ρ€ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ простой доступ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅, которая прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΎΠ±ΠΌΠ΅Π½Π° сразу нСсколькими значСниями ΠΌΠ΅ΠΆΠ΄Ρƒ строками ΠΊΠΎΠ΄Π°, функциями ΠΈ Π΄Π°ΠΆΠ΅ страницами. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ±Π·ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства массивов ΠΈ описаны всС встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PHP, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для манипулирования массивами. Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π½ΡΡ‚ΡŒΡΡ ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ этой Ρ‚Π΅ΠΌΡ‹, цСлСсообразно Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС способы использования массивов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ PHP.

АссоциативныС массивы ΠΈ массивы с числовыми индСксами

Π’ массивах с числовыми индСксами Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСксов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ числа, Π° Π² ассоциативных массивах – строки. Π’ ассоциативных массивах ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½ΠΎΠ²ΠΎΠΌΡƒ элСмСнту Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ строковый индСкс. ΠœΠ°ΡΡΠΈΠ²Ρ‹ с числовыми индСксами ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт, Π° PHP автоматичСски Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅ΠΌΡƒ Π² качСствС индСкса ΠΏΠ΅Ρ€Π²ΠΎΠ΅ свободноС число начиная с 0. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ. АссоциативныС массивы прСкрасно подходят для сохранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ настройках, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… ΠΊΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ счСт Π½Π΅ с 0, Π° с 1. По рассСянности Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту массива – это называСтся ошибкой Π·Π°Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ (off-by-one error). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса послСднСго элСмСнта Π² массивС, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· Π΄Π»ΠΈΠ½Ρ‹ массива Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ симптом Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ошибкС Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ массив с индСкса 1, Π° Π½Π΅ 0 – ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ послСднСму элСмСнту массива Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта просто Π½Π΅ находится.

Π’Π½ΡƒΡ‚Ρ€ΠΈ PHP массивы с числовыми индСксами хранятся Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ассоциативныС массивы. ΠœΠ°ΡΡΠΈΠ²Ρ‹ с числовыми индСксами ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ простой способ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для доступа ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ достаточно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ индСкс ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.

БозданиС массива

Для создания массивов Π² сцСнарии PHP прСдусмотрСны Ρ‚Ρ€ΠΈ основных способа: присваиваниС значСния ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· элСмСнтов Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ массива (ΠΈ Ρ‚Π΅ΠΌ самым нСявноС созданиС массива), использованиС конструкции array() ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π² качСствС своСго значСния.

НСпосрСдствСнноС присваиваниС

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ создания массива состоит Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°ΠΊΠΈΡ… дСйствий, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ эта пСрСмСнная ΡƒΠΆΠ΅ прСдставляСт собой массив, ΠΈ присваивании Π΅ΠΉ значСния:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ значСния Π΅Π³ΠΎ элСмСнтов ΠΈ индСксов. Π’ качСствС элСмСнтов массива ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹Π΅ значСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ строки, числа ΠΈ Π΄Π°ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. ПолС ΠΊΠ»ΡŽΡ‡Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ скаляром. БкалярныС значСния – это Ρ‚Π°ΠΊΠΈΠ΅ значСния элСмСнтарного Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ числа ΠΈΠ»ΠΈ строки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ значСния TRUE ΠΈ FALSE, Π½ΠΎ Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько составных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΏΠΎΠ»Π΅ ΠΊΠ»ΡŽΡ‡Π° массива для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт ΠΏΠΎΠ²Π΅Ρ€Ρ… ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ, с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠΌΡƒ элСмСнту ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта, Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ староС.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ array()

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ создания массива состоит Π² использовании конструкции array(), которая создаСт Π½ΠΎΠ²Ρ‹ΠΉ массив Π½Π° основании спСцификации элСмСнтов ΠΈ ассоциированных с Π½ΠΈΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π’ своСй ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ вСрсии конструкция array() вызываСтся Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ созданию Π½ΠΎΠ²ΠΎΠ³ΠΎ пустого массива. Π‘ΠΎΠ»Π΅Π΅ слоТной ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ являСтся вСрсия, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ конструкция array() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ запятыми список элСмСнтов, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ указания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ становится Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ элСмСнты ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² массивС Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ порядкС ΠΈ ΠΈΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ цСлочислСнныС ΠΊΠ»ΡŽΡ‡ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с нуля. НапримСр, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP дСйствуСт Π½Π° основании прСдполоТСния, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ цСлочислСнныС индСксы, отсчитываСмыС ΠΎΡ‚ нуля Π² сторону увСличСния.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ нумСрация индСксов массива начинаСтся с нуля, Π° Π½Π΅ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΎΠ΅ соглашСниС ΠΎ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ индСксов массивов принято Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков программирования.

Π’ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ конструкции array(), ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, присваиваниС индСксов элСмСнтам ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ автоматичСски, Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ индСксы ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ цСлочислСнными ΠΈ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² сторону увСличСния ΠΎΡ‚ нуля, поэтому ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°. Но, ΠΊΠ°ΠΊ оказалось, конструкция array() обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру для создания ассоциативных массивов. ВмСсто пСрСчислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми, Π² этой конструкции ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ символа =>. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ присваивания β€” каТдая строка Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π² массивС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ этим строковым значСниям Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎ порядку присвоСны индСксы 0, 1, 2, 3. Однако вмСсто этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру для сохранСния Ρ‚Π΅Ρ… ΠΆΠ΅ элСмСнтов, Π½ΠΎ со строковыми индСксами:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого Π² массив Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ‚Π΅ ΠΆΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС, Π½ΠΎ с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ индСксации с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… названиям Ρ†Π²Π΅Ρ‚ΠΎΠ², Π° Π½Π΅ чисСл. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· массива Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Ρ€ΡƒΠΊΡ‚Π° ΠΆΠ΅Π»Ρ‚ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, достаточно Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ массивы

ПослСдний способ создания массива Π² сцСнарии состоит Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ функция, опрСдСляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈΠ»ΠΈ встроСнная функция, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² PHP.

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Настоящий Ρ€Π°Π·Π΄Π΅Π» позволяСт Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· массива послС ΠΈΡ… сохранСния Π² этом массивС.

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π°

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ list()

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… способов Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· массивов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· этих способов основано Π½Π° Ρ‚ΠΎΠΌ Ρ„Π°ΠΊΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² массивах ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдусматриваСтся рСгистрация элСмСнтов Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠ°ΠΊΠΎΠΌ происходила ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° этих элСмСнтов Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ list() примСняСтся для присваивания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ подряд ΠΈΠ΄ΡƒΡ‰ΠΈΡ… элСмСнтов массива ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Допустим, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ смыслС конструкция list() являСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ, ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ, конструкции array(), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ array() ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ свои ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² массив, Π° конструкция list() распаковываСт массив, присваивая значСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Π’ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, рассматриваСмых Π΄ΠΎ сих ΠΏΠΎΡ€, массивы Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΡŽΡ‡ΠΈ, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках, опрСдСляли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ доступа ΠΊ массиву. Но язык PHP позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ количСством ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы β€” это просто массивы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания числовых ΠΈ ассоциативных ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, Π° Π½ΠΈΠΆΠ΅ Π±Π»ΠΎΠΊ-схСма, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰Π°Ρ ΠΈΡ… использованиС:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpΠ‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΈ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ массиву для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния Π½Π΅ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой сурового наказания; Ссли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ рассматриваСтся ΠΊΠ°ΠΊ нСсвязанная пСрСмСнная.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ массивах

Π’Ρ‹ΡˆΠ΅ Π±Ρ‹Π»ΠΎ описано, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния Π² массивах, Π° Π·Π°Ρ‚Π΅ΠΌ снова ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ значСния, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ свСдСния ΠΎ функциях Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ массивах.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ PHP-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для получСния свСдСний ΠΎ массивах

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
is_array()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ любого Ρ‚ΠΈΠΏΠ° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся массивом; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
count()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС фактичСского ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° массив ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство нСпустых элСмСнтов Π² массивС
sizeof()Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° count()
in_array()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: элСмСнт (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан Π² массив Π² качСствС значСния) ΠΈ массив (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнт). Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли элСмСнт содСрТится Π² массивС Π² качСствС значСния; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эта функция Π½Π΅ выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² массивС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.)
isSet($array[$key])ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ arrayпослСдний индСкс массива php ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Ρ‡Π°ΡΡ‚ΡŒ, обозначСнная ΠΊΠ»ΡŽΡ‡ΠΎΠΌ key, прСдставляСт собой допустимый ΠΊΠ»ΡŽΡ‡ для массива array. (Π­Ρ‚ΠΎ β€” спСциализированный способ использования Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ isSet(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт, являСтся Π»ΠΈ пСрСмСнная связанной.)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· массивов

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ удалСния элСмСнта ΠΈΠ· массива являСтся простой ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния значСния, присвоСнного ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Достаточно просто Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ unset(), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ опСрация удалСния элСмСнта Π½Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания элСмСнту пустого значСния. НапримСр, Ссли вмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ unset() Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ массив содСрТал Π±Ρ‹ Ρ‚Ρ€ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… значСния (‘Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅’, », ‘Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅’), ассоциированных с трСмя индСксами (соотвСтствСнно 0, 1 ΠΈ 2).

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ массивов

ΠœΠ°ΡΡΠΈΠ²Ρ‹ PHP Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ значСния, ассоциированныС с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ упорядочСнный список ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», хранящийся Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходила запись этих ΠΏΠ°Ρ€ Π² массив. Вакая структура массива Π±Ρ‹Π»Π° принята исходя ΠΈΠ· Ρ‚Π΅Ρ… сообраТСний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ массив ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обСспСчСния ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ всСму содСрТимому массива. (Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эту Π·Π°Π΄Π°Ρ‡Ρƒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, просто сформировав Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ индСксы массивов PHP Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ числовыми.)

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² структуру массивов встроСна своСго Ρ€ΠΎΠ΄Π° скрытая систСма ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. КаТдая хранимая ΠΏΠ°Ρ€Π° «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ, ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов этого становится Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° самый ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈ остаСтся Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° этот элСмСнт, Ссли Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сдвинут Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

РассматриваСмая систСма ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° основС связного списка прСдставляСт собой Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ массивах ΠΈ манипулирования ΠΈΠΌΠΈ. БистСма ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ сущСствуСт наряду с систСмой, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ запись Π² массив ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· массива Π½Π° основС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Π¦ΠΈΠΊΠ» foreach

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ цикличСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» foreach. БСзусловно, создаСтся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эта конструкция унаслСдована ΠΎΡ‚ конструкции foreach языка Perl, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ‚Ρ€Π°Π½Π½ΡƒΡŽ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру (которая, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ совпадаСт со странной синтаксичСской структурой Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ конструкции ΠΈΠ· языка Perl). БинтаксичСская структура конструкции foreach Π² языкС PHP ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ разновидности, ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, какая ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, трСбуСтся Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpИспользованиС Ρ†ΠΈΠΊΠ»Π° foreach

Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

МнС нравится конструкция foreach, Π½ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° лишь Π² Ρ‚Π°ΠΊΠΈΡ… ситуациях, ΠΊΠΎΠ³Π΄Π° трСбуСтся просто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ значСния, хранящиСся Π² массивС. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов Π² Ρ†ΠΈΠΊΠ»Π΅

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² настоящСС врСмя ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ «Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ (ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отсутствуСт)

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ элСмСнт. Если ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° послСдний элСмСнт, эта функция ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ «Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива», поэтому ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ current() Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ послС Π΅Π³ΠΎ продвиТСния (ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отсутствуСт, Ρ‚.Π΅. ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΡˆΠ΅Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива)

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ элСмСнт. Если ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива, устанавливая Π΅Π³ΠΎ «ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ массива»

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ послС Π΅Π³ΠΎ продвиТСния Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ (ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отсутствуСт, Ρ‚.Π΅. ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΡˆΠ΅Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива)

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» (ΠΈΠ»ΠΈ занял ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ «ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ массива», Ссли массив пуст)

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хранящССся Π² массивС, ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π² случаС пустого массива

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² прямом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ устанавливаСт Π΅Π³ΠΎ Π½Π° послСднюю ΠΏΠ°Ρ€Ρƒ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅»

ПослСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π² настоящСС врСмя Π² спискС ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅»

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ (Π­Ρ‚Π° функция являСтся псСвдонимом Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ current().)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² настоящСС врСмя Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅»

Массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΊΠ»ΡŽΡ‡Π΅ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ· ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», которая Π±Ρ‹Π»Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΎ пСрСмСщСния указатСля (ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли тСкущая ΠΏΠ°Ρ€Π° отсутствуСт, Ρ‚.Π΅. ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ находится Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ массива). Π’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠΌ массивС ΠΊΠ»ΡŽΡ‡ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ хранятся ΠΏΠΎΠ΄ собствСнными ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ массива, соотвСтствСнно 0 ΠΈ 1, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ собствСнными ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ массива, соотвСтствСнно ‘key’ ΠΈ ‘value’

Ѐункция array_walk() Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ фактичСского ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅». ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты зависят ΠΎΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1

Ѐункция current() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сохранСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² настоящСС врСмя Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Π’ΠΎ вновь созданном массивС с элСмСнтами Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ всСгда Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт. Ѐункция next() Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Если функция next() вызываСтся Π² Ρ‚Π΅Ρ… условиях, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° послСднСС Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ поэтому Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° ΠΊΠΎΠ½Π΅Ρ† массива, функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Π²Ρ‹Π²ΠΎΠ΄ содСрТимого массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ current() ΠΈ next(), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

ПослС выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π° массива снова Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ current() ΠΈ next()

Π’ связи с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… здСсь Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print_all_next() ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€Π΅ΠΆΠ½ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²? Как ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ снова ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·? ΠžΡ‚Π²Π΅Ρ‚ обусловлСн Ρ‚Π΅ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ PHP ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΏΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ функция ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ этими копиями, Π° Π½Π΅ самими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΎΠ±ΠΎΠΈΡ… этих Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСдаСтся нСмодифицированная копия массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π° сам массив Π½Π΅ затрагиваСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ next().

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ частичным Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° foreach. Но Ρ†ΠΈΠΊΠ» foreach позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π½Π° экран ΠΊΠ»ΡŽΡ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ key():

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ key() для получСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ массива

БрСдства прСобразования массивов

Π’ языкС PHP прСдусмотрСн Ρ†Π΅Π»Ρ‹ΠΉ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти Π΄Π°Π½Π½Ρ‹Π΅ для обСспСчСния удобства Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны Π² Π²ΠΈΠ΄Π΅ массивов. ΠžΠ±Ρ‰Π΅ΠΉ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, рассматриваСмых Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅, являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° массив, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ с Π½ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива (описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сортировки массивов Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²).

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ манипулирования массивами ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСктВозвращаСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
current()Один фактичСский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚
array_walk()ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” фактичСский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ массива, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с двумя (ΠΈΠ»ΠΈ трСмя) фактичСскими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, которая вызываСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅, состоящСй ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π° ΠΈ значСния, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ фактичСский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования массивов

ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅Π€ΡƒΠ½ΠΊΡ†ΠΈΡ
array_keys()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, значСниями ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива, Π° ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Π΅ числа, начиная с нуля
array_values()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, значСниями ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива, Π° ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Π΅ числа, начиная с нуля
array_count_values()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива, Π° значСниями β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ, сколько Ρ€Π°Π· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΎΡΡŒ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ массивС
array_flip()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ измСняСт Π΅Π³ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ становятся значСния, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚
array_reverse()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ измСняСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ упорядочСниС ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² массивС числовых цСлочислСнных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ происходит Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… пСрСнумСрация
shuffle()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива ΠΈ измСняСт случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ упорядочСниС ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅». ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ пСрСнумСрация цСлочислСнных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² соотвСтствии с Π½ΠΎΠ²Ρ‹ΠΌ упорядочСниСм. Π’ процСссС выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ shuffle() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайных чисСл rand(), поэтому ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ srand() для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (ΠΎΠ± этом говорится Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅)
array_merge()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… массивов, выполняСт ΠΈΡ… слияниС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, состоящий ΠΈΠ· элСмСнтов ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива (Π² исходном порядкС), Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ массива.

Если Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ количСства элСмСнтов Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ массивС являСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ осущСствляСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива происходит слСва (Π² Π½Π°Ρ‡Π°Π»Π΅), Π° Π½Π΅ справа (Π² ΠΊΠΎΠ½Ρ†Π΅). Если количСство элСмСнтов Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ массивС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ количСство элСмСнтов Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ массивС, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ эффСкта

array_slice()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив, цСлочислСнноС смСщСниС ΠΈ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅) цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ старого β€” ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ списка ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅». ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ элСмСнты Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ смСщСниСм ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ смСщСния ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом являСтся элСмСнт, отсчитываСмый с Π½Π°Ρ‡Π°Π»Π° массива, Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ смСщСния ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° элСмСнт, отсчитываСмый с ΠΊΠΎΠ½Ρ†Π°.

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт Π΄Π»ΠΈΠ½Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_slice(), Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Π½Π° ΠΊΠ°ΠΊΠΎΠΌ элСмСнтС, отсчитываСмом с ΠΊΠΎΠ½Ρ†Π° массива, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ отсутствуСт, выдСляСмый Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° массива

array_splice()УдаляСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассматриваСтся ΠΊΠ°ΠΊ вырСзаСмая Ρ‡Π°ΡΡ‚ΡŒ) массива ΠΈ замСняСт Π΅Π³ΠΎ содСрТимым Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив, смСщСниС, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ массив. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, содСрТащий Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, которая Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива. ΠŸΡ€Π°Π²ΠΈΠ»Π° использования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ смСщСния ΠΈ Π΄Π»ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² описанной Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_slice().

Если Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ массив Π½Π΅ Π·Π°Π΄Π°Π½, Ρ‚ΠΎ данная функция просто (дСструктивно) удаляСт Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎ массива элСмСнты этого массива Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСсто ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌΠΎΠΉ части

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… рассмотрим эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Ѐункция array_keys() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ массива, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива, ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ значСния. ΠšΠ»ΡŽΡ‡Π°ΠΌΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива становятся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ индСксы Π² Π²ΠΈΠ΄Π΅ автоматичСски Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля. Ѐункция array_values() выполняСт Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ дСйствиС, Ссли Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌΠΈ значСниями становятся значСния ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ массива:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ массива ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· исходного массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ array_keys() ΠΈ array_values()

По-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ примСнСния Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· рассматриваСмых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (array_values()) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ мСньший интСрСс, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта функция фактичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ исходный массив ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ числами.

НСмного Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ упорядочСния) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_count_values(). Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° массив ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ старыС значСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, Π° Π½ΠΎΠ²Ρ‹Π΅ значСния ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, сколько Ρ€Π°Π· ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ встрСчаСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ массивС.

Π—Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ случайноС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΠ΅

Π‘ΠΎΠ»Π΅Π΅ Ρ€Π΅Π΄ΠΊΠΎ примСняСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с описанными Π²Ρ‹ΡˆΠ΅ являСтся функция array_flip(), которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ массива Π² значСния, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ гарантируСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ массива, Π° Π½Π° значСния массива такая гарантия Π½Π΅ распространяСтся. Π’ связи с этим Π»ΡŽΠ±Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ значСния Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ массивС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ Π² Π½ΠΎΠ²ΠΎΠΌ массивС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сохраняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ становится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ обращСния массива являСтся ΠΌΠ΅Π½Π΅Π΅ слоТной: функция array_reverse() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» находятся Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ внСсСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты случайности, Ρ‚ΠΎ для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ shuffle(). Ѐункция shuffle() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° массив ΠΈ измСняСт случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ порядок элСмСнтов Π² массивС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ array_flip(), array_reverse(), shuffle()

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, функция shuffle() являСтся дСструктивной. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° примСняСтся нСпосрСдствСнно ΠΊ массиву, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈ измСняСт Π΅Π³ΠΎ, Π° Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ вновь созданный массив. (Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ свои ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ конструктивными, ΠΈΠ»ΠΈ нСдСструктивными.) ΠšΡ€ΠΎΠΌΠ΅ всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ Π²Ρ‹Π·ΠΎΠ²Π° рассматриваСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ случайного ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΡ элСмСнтов Π½Π΅ являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ:

БлияниС, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π²Ρ‹Ρ€Π΅Π·ΠΊΠ° ΠΈ вставка элСмСнтов массивов

Если трСбуСтся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° массива, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ списка, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array_merge(). Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄Π²Π° ΠΈΠ»ΠΈ нСсколько массивов ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив с ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ массив присоСдинСн ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. НапримСр:

Ѐункция array_pad() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ количСства Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π² цСлях увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива. Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив. ВслСд Π·Π° этим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ количСство элСмСнтов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ увСличиваСтся массив, Π° Π·Π°Ρ‚Π΅ΠΌ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, присваиваСмоС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам. Если Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π°Π΄Π°Π½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ массив дополняСтся Π² ΠΊΠΎΠ½Ρ†Π΅, Π° Π² случаС указания ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа массив дополняСтся Π² Π½Π°Ρ‡Π°Π»Π΅. Если Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ выполняСтся:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpΠ£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_pad()

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ автоматичСски присваиваСмыС ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля, Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ пятой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

НСмного Π±ΠΎΠ»Π΅Π΅ слоТными ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_slice() ΠΈ array_splice(). ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈΠ· Π½ΠΈΡ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подмноТСство элСмСнтов Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива, принимая Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² смСщСниС ΠΈ Π΄Π»ΠΈΠ½Ρƒ соотвСтствСнно. Ѐункция array_splice() Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_slice(), Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой массив любой Π΄Π»ΠΈΠ½Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для вставки Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив.

Π‘Ρ‚Π΅ΠΊΠΈ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

Π‘Ρ‚Π΅ΠΊΠΈ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой абстрактныС структуры Π΄Π°Π½Π½Ρ‹Ρ…, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π»Π°Π³Π°ΡŽΡ‚ трСбования ΠΏΠΎ использованию ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» доступа ΠΊ содСрТащимся Π² Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ эти ΠΏΡ€Π°Π²ΠΈΠ»Π° практичСски Π½Π΅ зависят ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° самих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠœΠ°ΡΡΠΈΠ²Ρ‹ языка PHP Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходят для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ эмуляции структур Π΄Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ благодаря ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов массива PHP появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массивов Ρ‚Π°ΠΊΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ стСки ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. Π’ языкС PHP прСдусмотрСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для этой Ρ†Π΅Π»ΠΈ. Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ программист ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² основС рассматриваСмых структур Π΄Π°Π½Π½Ρ‹Ρ… Π»Π΅ΠΆΠ°Ρ‚ массивы.

прСдставляСт собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСт значСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ доступа ΠΊ этим значСниям ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (last-in-first-out β€” LIFO). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ стСк ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ порядок сохраняСмых Π² Π½Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ прСдоставляСт СдинствСнный способ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ сохранСнного Π² Π½Π΅ΠΌ значСния β€” ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ (ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅) послСднСго ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сохранСнного значСния:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для описания стСка примСняСтся такая аналогия β€” стопка подносов Π² ΠΊΠ°Ρ„Π΅Ρ‚Π΅Ρ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΠΈΠ½ΠΈΠΉ Ρ€Π°Π·Π΄Π°Ρ‡ΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ посСтитСли Π±Π΅Ρ€ΡƒΡ‚ подносы, снимая ΠΈΡ… свСрху, Π° слуТащиС постоянно ΠΏΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ запас подносов, Ρ‚Π°ΠΊΠΆΠ΅ накладывая ΠΈΡ… свСрху. НовыС подносы ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΈ Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ свСрху, Π½ΠΎ Π΄ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅ подноса Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Π½Π΅ сняв ΠΏΠ΅Ρ€Π΅Π΄ этим ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΆΠ΅ подносы.

ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° стСку, Π½ΠΎ дСйствуСт ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (first-in-first-out β€” FIFO). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для описания Ρ‚Π°ΠΊΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ примСняСтся аналогия с Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ людСй, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… обслуТивания, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² Англии ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ queue, Π° Π² БША β€” line. ΠžΠ±Ρ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ обслуТивания людСй, стоящих Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ простоял Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ дольшС всСх:

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стСками ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_push() ΠΈ array_pop(). Ѐункция array_push() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° исходный массив, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ любоС количСство элСмСнтов, Π·Π°Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² стСк. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ массива, Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Ѐункция array_pop() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚Π°ΠΊΠΎΠΉ массив ΠΈ удаляСт элСмСнт, находящийся Π² ΠΊΠΎΠ½Ρ†Π΅ массива, возвращая этот элСмСнт.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массивов

НаконСц, Π² языкС PHP прСдусмотрСно мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для сортировки массивов. Как Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ситуациСй, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ассоциации «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π² массивС, ΠΈ ситуациСй, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ числовыС ΠΊΠ»ΡŽΡ‡ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² качСствС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± упорядочСнии, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ измСнСнию послС измСнСния порядка элСмСнтов. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π² языкС PHP прСдусмотрСны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сортировки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ особСнности ситуаций ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, язык PHP позволяСт ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ упорядочСния, прСдоставлСнныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сортировки ΡΠ²Π»ΡΡŽΡ‚ΡΡ сокращСнными, Π½ΠΎ содСрТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ обозначСния (ΠΊΡ€ΠΎΠΌΠ΅ части ΠΈΠΌΠ΅Π½ΠΈ со словом sort), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π±ΡƒΠΊΠ²Π° «a» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция выполняСт сортировку ΠΏΠΎ значСниям, Π½ΠΎ сохраняСт ассоциации ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠΈ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚.

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π±ΡƒΠΊΠ²Π° «k» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сортировка осущСствляСтся ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ, Π½ΠΎ ассоциации «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ «a» ΠΈΠ»ΠΈ «k» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сортировка выполняСтся ΠΏΠΎ значСниям, Π½ΠΎ ассоциации «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. Π’ частности, числовыС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ, отраТая Π½ΠΎΠ²ΠΎΠ΅ упорядочСниС.

Π‘ΡƒΠΊΠ²Π° «r» ΠΏΠ΅Ρ€Π΅Π΄ словом sort ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ примСняСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок сортировки.

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π±ΡƒΠΊΠ²Π° «u» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” имя опрСдСляСмой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π·Π°Π΄Π°Π΅Ρ‚ упорядочСниС Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… элСмСнтов, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… сортировкС.

Π­Ρ‚ΠΈ простыС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… функциях сортировки:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки массивов

Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
asort()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΠΏΠΎ значСниям, Π½ΠΎ сохраняСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ. ЯвляСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ассоциативными массивами
arsort()Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ asort(), Π½ΠΎ сортируСт Π² порядкС ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ
ksort()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ, Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ассоциации «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ
krsort()Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ksort(), Π½ΠΎ сортируСт Π² порядкС ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ
sort()ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²ΠΈΠ΄Π΅ массива. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» массива ΠΏΠΎ ΠΈΡ… значСниям. ΠšΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ Π² соотвСтствии с Π½ΠΎΠ²Ρ‹ΠΌ упорядочСниСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
rsort()Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ sort(), Π½ΠΎ сортируСт Π² порядкС ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ
uasort()Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΠΏΠΎ значСниям с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния. Аналогична asort(), Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ фактичСскоС упорядочСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ опрСдСляСтся Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой имя опрСдСляСмой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ упорядочСния. Π­Ρ‚Π° функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Ссли Π΅Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ (согласно Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния), ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ слСдуСт Π·Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ, ΠΈ Π½ΡƒΠ»ΡŒ, Ссли сравниваСмыС элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ
uksort()Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния. Аналогична uasort(), Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ упорядочСниС осущСствляСтся ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ, Π° Π½Π΅ ΠΏΠΎ значСниям
usort()Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ массив ΠΏΠΎ значСниям с использованиСм прСдоставлСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния. Аналогична uasort(), Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ассоциации «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ (ΠΊΠ°ΠΊ ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sort())

НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сортировки Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС:

Код PHP послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ послСдний индСкс массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ послСдний индСкс массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ послСдний индСкс массива php. Π€ΠΎΡ‚ΠΎ послСдний индСкс массива phpИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sort()

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ функция sort() Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отсортировала значСния, Π½ΠΎ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»Π° тСкстовыС ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° числовыС индСксы. Если Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ asort().

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *