Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

ИспользованиС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π² PHP

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива Π² PHP ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ значСния любого Ρ‚ΠΈΠΏΠ°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ числа, строки, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы, Ρ‡Ρ‚ΠΎ фактичСски ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ массива.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅) массивы PHP. ΠžΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈΡ… ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΏΠΎ всСму ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ массиву Π² PHP.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив

Π’ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаётся Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Массив Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня содСрТит 3 элСмСнта. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ‚Π°ΠΊΠΆΠ΅ являСтся массивом, содСрТащим 3 значСния.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ассоциативный массив Π² качСствС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт созданиС индСксированного массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит 3 ассоциативных массива:

МоТно Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ массивы ΠΎΠ΄ΠΈΠ½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ, насколько Π½ΡƒΠΆΠ½ΠΎ (хотя Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π³Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ большС 3-Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ). Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ дСмонстрируСтся 3-Ρ… ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив:

Доступ ΠΊ элСмСнтам Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС

Для получСния доступа ΠΊ элСмСнтам ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис «ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ массивом. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС Π½ΡƒΠΆΠ½ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх элСмСнтов ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² Ρ†ΠΈΠΊΠ»Π΅

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаётся 2-Ρƒ ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ°ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ организуСтся Ρ†ΠΈΠΊΠ» ΠΏΠΎ элСмСнтам массива для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° страницу:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

РСзюмС

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

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ для вас ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ сайта ruseller.com
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ΡƒΡ€ΠΎΠΊΠ°: www.elated.com/articles/php-multidimensional-arrays/
ΠŸΠ΅Ρ€Π΅Π²Π΅Π»: Π‘Π΅Ρ€Π³Π΅ΠΉ Ѐастунов
Π£Ρ€ΠΎΠΊ создан: 30 Июля 2010
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ²: 157266
ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ

5 послСдних ΡƒΡ€ΠΎΠΊΠΎΠ² Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ «PHP»

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ zend-filter

Когда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ бСзопасности Π²Π΅Π±-сайта, Ρ‚ΠΎ Ρ„Ρ€Π°Π·Π° «Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ всё, экранируйтС всё» всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°. БСгодня ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ экранированиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ zend-escaper

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ бСзопасности Π²Π΅Π±-сайта β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ SQL ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ, Π½ΠΎ ΠΈ протСкция ΠΎΡ‚ мСТсайтового скриптинга (XSS), мСТсайтовой ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ запросов (CSRF) ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² Π°Ρ‚Π°ΠΊ. Π’ частности, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ остороТно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ HTML, CSS ΠΈ JavaScript ΠΊΠΎΠ΄Π°.

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Zend ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊ Expressive

Expressive 2 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… ZF ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ схСмС. НС всСм нравится Π΄Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ процСсс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

Π‘ΠΎΠ²Π΅Ρ‚: ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Google Analytics Ρ‡Π΅Ρ€Π΅Π· API

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Google Analytics ΠΈΠ· сСрвСрного скрипта. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. ΠžΡ‚Π²Π΅Ρ‚ Π² этой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅.

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° PHP пСсочниц

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² PHP пСсочниц. На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ online смоТСтС ΠΏΠΎΡ‚Π΅ΡΡ‚ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π½Π° свой сайт.

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

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

Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ я расскаТу Π²Π°ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

Рядом с ΠΌΠΎΠΈΠΌ офисом Π΅ΡΡ‚ΡŒ ΠΌΠ°Π³Π°Π·ΠΈΠ½ DVD с ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠΎΠΉ английских Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ². Π’Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Π½ΠΎ всС ΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΠΌ срСди 20 тысяч дисков. Как ΠΎΠ½ это Π΄Π΅Π»Π°Π΅Ρ‚?

Π― ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» Π΅Π³ΠΎ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ. Π’Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° классифицировал всС DVD-диски ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΆΠ°Π½Ρ€Π°ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ / ΠΊΠΎΠ΄Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΎΠΊ. Он Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΈΡ… ΠΏΠΎΠ»ΠΊΠ°Ρ…. КаТдая ΠΏΠΎΠ»ΠΊΠ° маркируСтся ΠΏΠΎ названию ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Romantic Movies, Horror Movies ΠΈ Ρ‚. Π΄.. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ DVD ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отслСТивания.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ свой ΠΌΠ°Π³Π°Π·ΠΈΠ½ DVD, сдСлайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

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

1. ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.
2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ряды (строки).
3. ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массивов: Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ схоТиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² PHP β€” ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

«Набор Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния для ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ простой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ».

Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ собствСнноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массивов. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΡ… ΠΊΠ°ΠΊ Β«ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая содСрТит Π² сСбС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β».

Бинтаксис массива PHP:

Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ΄ΡƒΡ‚ значСния Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ запятой.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈ выводятся массивы Π² PHP:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ индСкса начинаСтся с 0, Π° Π½Π΅ 1.

КаТдоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΊΠ°ΠΊ INDEX NUMBER.
Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ способом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, присвоСниС ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ использованиС Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΈΡ… отобраТСния. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ Π² случаС Ρ‚Ρ€Π΅Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Но Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с полусотнСй ΠΈΠ»ΠΈ сотнями Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ массив ΠΈ присвоили Π΅ΠΌΡƒ значСния Π·Π° ΠΎΠ΄ΠΈΠ½ шаг. Π₯отя ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² PHP β€” основныС Ρ‚ΠΈΠΏΡ‹

Π’ PHP сущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° массивов:

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

Ассоциативный массив PHP

Иногда Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксныС ΠΈΠΌΠ΅Π½Π° вмСсто чисСл. НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Ρ€Π΅Ρ… ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ².

ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ассоциативный массив.

АссоциативныС массивы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ со слоТным прСдставлСниСм Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹, динамичСскими значСниями ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄.

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

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив PHP ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ массивы Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя, Π° подмассивы ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. Π£ Дэвида Π΅ΡΡ‚ΡŒ Π΄Π²Π° сына β€” Π ΠΈΡ‡ΠΈ ΠΈ МСйсон. Π£ Π ΠΈΡ‡ΠΈ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π΄ΠΎΡ‡Π΅Ρ€ΠΈ β€” Бью ΠΈ ΠΠ°Ρ‚Π°ΡˆΠ°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρƒ МСйсона Ρ‚Ρ€ΠΈ Π΄ΠΎΡ‡Π΅Ρ€ΠΈ β€” Николь, Бальма ΠΈ Π­ΠΌΠ±Π΅Ρ€. Π˜Ρ… сСмСйноС Π΄Ρ€Π΅Π²ΠΎ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сСмСйноС Π΄Ρ€Π΅Π²ΠΎ Дэвида ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив PHP, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ массив ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ массив ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π·Π°Ρ‚Π΅ΠΌ вывСсти Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ массив для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы.

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ PHP: Ρ€Π°Π±ΠΎΡ‚Π° с массивами-Ρ†ΠΈΠΊΠ» FOREACH

Π¦ΠΈΠΊΠ» FOREACH ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с Π½ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ дСйствия.

Основной синтаксис Ρ†ΠΈΠΊΠ»Π° FOREACH ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

НапишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» FOREACH:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°:

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² PHP β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print_r

Π Π°Π½Π΅Π΅ ΠΌΡ‹ использовали print_r для отобраТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива. Но ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ print_r Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр:

Print_r Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ сам массив, Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ TRUE β€” Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Но, Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ TRUE, функция сохраняСт Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² php Ρ€Π°Π·ΠΌΠ΅Ρ€ массива?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ php количСство элСмСнтов Π² массивС, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ COUNT ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 3, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² массивС Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта.

Ѐункция var_dump

Ѐункция var_dump() ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ значСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²Π΅Π»Π° Π΄Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

Ѐункция var_export

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послС послСднСго элСмСнта добавляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ запятая. Но ΠΎΠ½Π° игнорируСтся PHP, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ нСпосрСдствСнно Π² свои скрипты:

Ѐункция array shift PHP

Она удаляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠ· массива ΠΈ сохраняСт Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Apples ΠΈΠ· массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Π― Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с array_shift :

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массива Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для числовых массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ цСлочислСнныС индСксы, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ассоциативных массивов.

PHP ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ list()

ВсС массивы ΠΈΠΌΠ΅ΡŽΡ‚ курсор. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ свободно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ. ΠšΡƒΡ€ΡΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ while Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅. Π‘Π½Π°Ρ‡Π°Π»Π° each() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‚. Π΄., ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, Ρ‡Ρ‚ΠΎ элСмСнтов большС Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ. Π’ΠΎΠ³Π΄Π° функция Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ†ΠΈΠΊΠ».

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ индСкса ΠΈ Π΅Π³ΠΎ значСния

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ имя индСкса ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» FOREACH ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ЦСль этой ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π΄Π°Ρ‚ΡŒ прСдставлСниС ΠΎ массивах ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… хранСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² массивах. Но Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΏΠΎ массивам, поТалуйста, Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² коммСнтариях ΠΊ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, оставляйтС ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. ΠœΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Π²Π°ΠΌ Π·Π° ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, подписки, Π»Π°ΠΉΠΊΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ!

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

array_merge

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

array_merge β€” Π‘Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ большСС количСство массивов

ОписаниС

Π‘Π»ΠΈΠ²Π°Π΅Ρ‚ элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ большСго количСства массивов Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся Π½ΠΎΠ²Ρ‹ΠΉ массив.

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

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

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив. Если вызываСтся Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пустой массив ( array ).

Бписок измСнСний

Π’Π΅Ρ€ΡΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
7.4.0Ѐункция Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π Π°Π½Π΅Π΅ трСбовался хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

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

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования array_merge()

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ числовыС ΠΊΠ»ΡŽΡ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹!

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив элСмСнтами Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π΅Π· пСрСзаписи элСмСнтов ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива ΠΈ Π±Π΅Π· пСрСиндСксации, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ объСдинСния массивов + :

ΠšΠ»ΡŽΡ‡ΠΈ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива Π±ΡƒΠ΄ΡƒΡ‚ сохранСны. Если ΠΊΠ»ΡŽΡ‡ массива сущСствуСт Π² ΠΎΠ±ΠΎΠΈΡ… массивах, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использован элСмСнт ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива, Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ массива Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования array_merge() с Π½Π΅ массивами

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

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

User Contributed Notes 2 notes

In some situations, the union operator ( + ) might be more useful to you than array_merge. The array_merge function does not preserve numeric key values. If you need to preserve the numeric keys, then using + will do that.

[ 0 ] = «zero» ;
$array1 [ 1 ] = «one» ;

$array2 [ 1 ] = «one» ;
$array2 [ 2 ] = «two» ;
$array2 [ 3 ] = «three» ;

//This will result in::

?>

Note the implicit «array_unique» that gets applied as well. In some situations where your numeric keys matter, this behaviour could be useful, and better than array_merge.

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… ассоциативных массивов PHP

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Ρ…Π°Π±Ρ€Π°ΠΆΠΈΡ‚Π΅Π»ΠΈ!

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

Π’ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ нас значСния, Π»Π΅Π³ΠΊΠΎ:

Но, Π° Ссли ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ массив n-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ? НапримСр, пятимСрный:

Π’ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«value1Β», Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

Π― Ρ‚Π°ΠΊΡƒΡŽ запись Π½Π΅ Π½Π°Π·Π²Π°Π» Π±Ρ‹ красивой, хотя ΠΎΠ½Π° являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ слСгка ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эту запись красивой ΠΏΡƒΡ‚Π΅ΠΌ привСдСния Π΅Π΅ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ:

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, вСдь смотрится, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΡƒΠ΄Π° симпотичнСй, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со стандартной записью.

Π˜Ρ‚Π°ΠΊ, для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ понадобится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ наш массив. НазовСм Π΅Π³ΠΎ easyArray ΠΈ сдСлаСм Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠΎΠΉ (Singleton):

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ наш класс стал ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠΎΠΉ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΠΌΡƒ вСсьма Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ массив Π² ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

Ну Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ магичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ «__get()» нашСго класса. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Π½Π°ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π˜Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, ΠΌΡ‹ провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² массивС, Π² случаС отсутствия Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ, выбрасываСм ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ошибкой «‘ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ (‘.$index.’) Π² массивС’«. Π”Π°Π»Π΅Π΅ провСряСм являСтся Π»ΠΈ, Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ массивом. Если ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ Π² массивС находится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. А Ссли всС-Ρ‚Π°ΠΊΠΈ это массив, Ρ‚ΠΎ ΠΌΡ‹ отправляСм Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ «loadArray($newArray)» ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ($this).

И, ΠΊΠ°ΠΊ послСдний ΡˆΡ‚Ρ€ΠΈΡ… нашСго класса, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ массив, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ наш класс:

Π˜Ρ‚Π°ΠΊ, наш класс Π³ΠΎΡ‚ΠΎΠ², Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

Π‘Ρ‚Π°Π»ΠΎ Π΄Π°ΠΆΠ΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΎ. Но эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅ΠΌΠ°, ΠΈ для этого Π½Π°ΠΌ понадобится простая функция:

Ну, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅:

Помимо этого, Π΄Π°Π½Π½ΠΎΠΌΡƒ классу ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΠΈΠΏΠ°:

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ я ΠΈΠ·ΠΎΠ±Ρ€Π΅Π» вСлосипСд, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ данная ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсна, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ программистам.

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

Как устроСны массивы Π² PHP

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я рассказывал ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎ массивах.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массивы Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ PHP?

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php
(Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ HashTable с Bucket-Π°ΠΌΠΈ, Π’. ВаснСцов)

А Π½Π°Ρ‡Π½Π΅ΠΌ Π²ΠΎΡ‚ с Ρ‡Π΅Π³ΠΎ β€” ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ врСмя, съСдаСмоС Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ вставляСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… скриптов:

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php
(ΠΏΠΎ оси X β€” ΠΊΠΎΠ»-Π²ΠΎ эл-Ρ‚ΠΎΠ² Π² массивС)

Как Π²ΠΈΠ΄Π½ΠΎ, Π½Π° ΠΎΠ±ΠΎΠΈΡ… Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… Π΅ΡΡ‚ΡŒ скачки ΠΈ ΠΏΠΎ потрСбляСмой памяти ΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ эти скачки происходят Π² ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.
Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ C (Π΄Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π° систСмном ΡƒΡ€ΠΎΠ²Π½Π΅), Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ массивов, с нСфиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС массив Π² C, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСма Π·Π½Π°Π»Π°, сколько Π½ΡƒΠΆΠ½ΠΎ памяти Π½Π° Π½Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ.
Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² PHP ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ скачки Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅?
Когда Π²Ρ‹ создаСтС пустой массив, PHP создаСт Π΅Π³ΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Если Π²Ρ‹ заполняСтС массив ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ достигаСтС ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚Π΅ этот Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‚ΠΎ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ массив с Π²Π΄Π²ΠΎΠ΅ большим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, всС элСмСнты ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π½Π΅Π³ΠΎ ΠΈ старый массив уничтоТаСтся. Π’ΠΎΠΎΠ±Ρ‰Π΅, это стандартный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

И ΠΊΠ°ΠΊ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ?

На самом Π΄Π΅Π»Π΅, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов Π² PHP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ сСбС стандартная структура Π΄Π°Π½Π½Ρ‹Ρ… Hash Table, ΠΎ дСталях Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.

Hash Table Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° самоС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ послСднСС значСния (Π½ΡƒΠΆΠ½ΠΎ для упорядочивания массивов), ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ массиву, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ current() ), ΠΊΠΎΠ»-Π²ΠΎ элСмСнтов, прСдставлСных Π² массивС, массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Bucket-Ρ‹ (ΠΎ Π½ΠΈΡ… Π΄Π°Π»Π΅Π΅), ΠΈ Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ.

Π—Π°Ρ‡Π΅ΠΌ
Π½Π°ΠΌ
Π²Π΅Π΄Ρ€Π° Π½ΡƒΠΆΠ½Ρ‹
ΠΈ ΠΊΡƒΠ΄Π°
Π½Π°ΠΌ
ΠΈΡ… Π»ΠΎΠΆΠΈΡ‚ΡŒ

Π’ Hash Table Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π³Π»Π°Π²Π½Ρ‹Π΅ сущности, пСрвая β€” это собствСнно сам Hash Table, ΠΈ вторая β€” это Bucket (Π΄Π°Π»Π΅Π΅ Π²Π΅Π΄Ρ€ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ заскучали).

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² массив, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Ρ‚Π°ΠΌ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ создаСтся Π½ΠΎΠ²ΠΎΠ΅ Π²Π΅Π΄Ρ€ΠΎ ΠΈ добавляСтся Π² Hash Table.

Но Ρ‡Ρ‚ΠΎ самоС интСрСсноС β€” это ΠΊΠ°ΠΊ Π² Hash Table хранятся эти Π²Π΅Π΄Ρ€Π°.

Как Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, Ρƒ HT Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π²Π΅Π΄Ρ€Π°, ΠΏΡ€ΠΈ этом Π²Π΅Π΄Ρ€Π° доступны Π² этом массивС ΠΏΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡƒ индСксу, Π° этот индСкс ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ зная ΠΊΠ»ΡŽΡ‡ Π²Π΅Π΄Ρ€Π°. Π—Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТно, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅, всС Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ‡Π΅ΠΌ каТСтся. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ происходит ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΈΠ· HT:

ПослС этого ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Hash Table, с маской 3, элСмСнты с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ 54 ΠΈ 90. А ΠΎΠ±Π° этих ΠΊΠ»ΡŽΡ‡Π° послС налоТСния маски Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ Π΄Π²ΠΎΠΉΠΊΠΈ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с коллизиями?

Π£ Π²Π΅Π΄Π΅Ρ€ оказываСтся Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΏΠ°Ρ€Π° ΠΊΠ°Ρ€Ρ‚ Π² Ρ€ΡƒΠΊΠ°Π²Π΅. КаТдоС Π²Π΅Π΄Ρ€ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Π΅Π΄Ρ€ΠΎ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… индСксы (Ρ…Π΅ΡˆΠΈ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ) Ρ€Π°Π²Π½Ρ‹.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠΌΠΈΠΌΠΎ основного двусвязного списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ всСми Π²Π΅Π΄Ρ€Π°ΠΌΠΈ, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠ΅ двусвязныС списки ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌΠΈ Π²Π΅Π΄Ρ€Π°ΠΌΠΈ, индСксы ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ получаСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°:

Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php. Π€ΠΎΡ‚ΠΎ Массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива php

ВСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ кСйсу с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ 54 ΠΈ 90, ΠΈ маской 3. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ 54, структура HT Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ элСмСнт с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ 90, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько элСмСнтов Π΄ΠΎ пСрСполнСния nTableSize (напомню, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° nNumOfElements > nTableSize).
Π”ΠΎΠ±Π°Π²ΠΈΠΌ элСмСнты с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ 0, 1, 3 (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ, ΠΈ послС налоТСния масок ΠΎΠ½ΠΈ останутся Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅), Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚:

Π’ΠΎ, Ρ‡Ρ‚ΠΎ происходит послС пСрСполнСния массива, называСтся rehash. По сути это ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ всСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²Π΅Π΄Ρ€Π°ΠΌ (Ρ‡Π΅Ρ€Π΅Π· pListNext), Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… сосСдСй (ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ) ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ссылок Π½Π° Π½ΠΈΡ… Π² arBuckets.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² PHP ΠΏΠΎΡ‡Ρ‚ΠΈ всС посторСно Π½Π° ΠΎΠ΄Π½ΠΎΠΉ этой структурС HashTable: всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ scope-Π΅, Π½Π° самом Π΄Π΅Π»Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π² HT, всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов, всС поля классов, Π΄Π°ΠΆΠ΅ сами Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠΈΠ½Ρ‹ классов Π»Π΅ΠΆΠ°Ρ‚ Π² HT, это Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‡Π΅Π½ΡŒ гибкая структура. Помимо ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, HT обСспСчиваСт практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ/вставки/удалСния ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всСх Ρ‚Ρ€ΠΎΠΈΡ… являСтся O(1), Π½ΠΎ с ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠΎΠΉ Π½Π° нСбольшой ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄ ΠΏΡ€ΠΈ коллизиях.

ΠšΡΡ‚Π°Ρ‚ΠΈ, здСсь я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» Hash Table Π² самом PHP. Ну, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» PHP-ΡˆΠ½Ρ‹Π΅ массивы Π² PHP =)

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

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

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