Π Π°Π±ΠΎΡ‚Π° с массивами Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых вострСбованных Π·Π°Π΄Π°Ρ‡ ΠΊΠ°ΠΊ для программистов, Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: списки Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запросов ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ слоТныС структуры для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако способов ΠΈΡ… создания ΠΈ заполнСния Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ 8.3 нСсколько, ΠΈ Π²Ρ‹Π±ΠΎΡ€ подходящСго зависит ΠΎΡ‚ контСкста: Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅, динамичСскоС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²Π²ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ 5 основных способов Π²Π²ΠΎΠ΄Π° массивов β€” ΠΎΡ‚ элСмСнтарного Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ создания Π΄ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с использованиСм конструкторов, запросов ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ошибкам (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пустым элСмСнтам ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ сбоям Π² ΠΊΠΎΠ΄Π΅, ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ. Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ 1Π‘, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². ΠžΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π½ΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ДинамичСскимиБписками ΠΈ оптимизация массивов для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ….

1. Π ΡƒΡ‡Π½ΠΎΠΉ Π²Π²ΠΎΠ΄ массива Ρ‡Π΅Ρ€Π΅Π· конструктор значСния

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

  • πŸ“Œ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹) ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄:
  • πŸ”§ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Новый Массив, Π° Π·Π°Ρ‚Π΅ΠΌ пСрСчислитС элСмСнты Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках.
  • πŸ”„ Для ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π²Π»ΠΎΠΆΠΈΡ‚Π΅ конструкторы Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°.
// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива

ΠœΠ°ΡΡΠΈΠ²Π¦Π²Π΅Ρ‚ΠΎΠ² = Новый Массив("ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ","Π—Π΅Π»Π΅Π½Ρ‹ΠΉ","Π‘ΠΈΠ½ΠΈΠΉ");

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива (Ρ‚Π°Π±Π»ΠΈΡ†Π° 2x3)

ΠœΠ°ΡΡΠΈΠ²Π’Π°Π±Π»ΠΈΡ†Π° = Новый Массив(

Новый Массив(1, 2, 3),

Новый Массив(4, 5, 6)

);

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ссли Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ число Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ (123), Π° Π·Π°Ρ‚Π΅ΠΌ строку Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ("123"), ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ создаст массив с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΏΡ€ΠΈ сортировкС ΠΈΠ»ΠΈ сравнСнии. ВсСгда провСряйтС Ρ‚ΠΈΠΏΡ‹ элСмСнтов Ρ‡Π΅Ρ€Π΅Π· Π’ΠΈΠΏΠ—Π½Ρ‡.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π° ΠΈ Массив.ВСрхняяГраница, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство элСмСнтов Π±Π΅Π· Ρ†ΠΈΠΊΠ»Π°. НапримСр: ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² = ΠœΠ°ΡΡΠΈΠ²Π¦Π²Π΅Ρ‚ΠΎΠ².ВСрхняяГраница + 1

2. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»

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

Рассмотрим Π΄Π²Π°Π½Ρ‹Ρ… сцСнария:

  • πŸ”’ ЧисловыС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива числами ΠΎΡ‚ 1 Π΄ΠΎ N с шагом.
  • πŸ“‹ Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ· справочников: пСрСнос Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΎΠ² ΠΈΠ· справочника НомСнклатура Π² массив.
// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: массив чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10

МассивЧисСл = Новый Массив;

Для Π‘Ρ‡ = 1 По 10 Π¦ΠΈΠΊΠ»

МассивЧисСл.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‡);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: массив Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹

ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ = Новый Массив;

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ;

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π¦ΠΈΠΊΠ»

ΠœΠ°ΡΡΠΈΠ²ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими справочниками (тысячи записСй) Π½Π΅ заполняйтС массив всСми элСмСнтами сразу β€” это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ΅ памяти. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("Π’ΠΎΠ²Π°Ρ€") для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ“Š Какой способ заполнСния массивов Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π ΡƒΡ‡Π½ΠΎΠΉ Π²Π²ΠΎΠ΄
Π¦ΠΈΠΊΠ»Ρ‹
Запросы 1Π‘
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ источники (Excel, JSON)
Π”Ρ€ΡƒΠ³ΠΎΠΉ

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса

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

Алгоритм дСйствий:

  1. Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ запрос с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ полями (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ конструктор запросов для удобства).
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π—Π°ΠΏΡ€ΠΎΡΠ°.
  3. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ».
Запрос = Новый Запрос;

Запрос.ВСкст =

"ВЫБРАВЬ

| НомСнклатура.НаимСнованиС КАК Π’ΠΎΠ²Π°Ρ€,

| Π‘ΡƒΠΌΠΌΠ°(Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π‘ΡƒΠΌΠΌΠ°Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) КАК ΠžΠ±Ρ‰Π°ΡΠ‘ΡƒΠΌΠΌΠ°

|Π˜Π—

| Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг КАК Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

| Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

| ПО Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.НомСнклатура = НомСнклатура.Бсылка

|Π“Π”Π•

| Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π”Π°Ρ‚Π° ΠœΠ•Π–Π”Π£ &ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π° И &ΠšΠΎΠ½Π΅Ρ†ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°

|Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО

| НомСнклатура.НаимСнованиС";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ΠΠ°Ρ‡Π°Π»ΠΎΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°", ΠΠ°Ρ‡Π°Π»ΠΎΠœΠ΅ΡΡΡ†Π°(ВСкущаяДата));

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ΠšΠΎΠ½Π΅Ρ†ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°", ΠšΠΎΠ½Π΅Ρ†ΠœΠ΅ΡΡΡ†Π°(ВСкущаяДата));

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ;

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ;

πŸ“Œ ΠœΠ΅Ρ‚ΠΎΠ΄ Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив массивов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ массив соотвСтствуСт строкС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса, Π° Π΅Π³ΠΎ элСмСнты β€” ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ наимСнования Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²), ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ ΠΈΡ… явно:

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ² = Новый Массив;

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ;

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π¦ΠΈΠΊΠ»

ΠœΠ°ΡΡΠΈΠ²Π’ΠΎΠ²Π°Ρ€ΠΎΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π’ΠΎΠ²Π°Ρ€);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… запросов?

Если запрос Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тысячи строк, Π½Π΅ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² массив сразу. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ:

1. Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π½Π° части (ΠΏΠΎ дням/нСдСлям).

2. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ порциями Π² Ρ†ΠΈΠΊΠ»Π΅.

3. Для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΠ’ΠΎΠ’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс.

4. Π˜ΠΌΠΏΠΎΡ€Ρ‚ массива ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников (Excel, JSON, XML)

Π’ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… Π΄Π°Π½Π½Ρ‹Π΅ часто ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ·Π²Π½Π΅: прайс-листы Π² Excel, ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‚ API Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм Π² XML. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ 8.3 прСдоставляСт инструмСнты для Ρ€Π°Π·Π±ΠΎΡ€Π° этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ прСобразования ΠΈΡ… Π² массивы.

Рассмотрим Ρ‚Ρ€ΠΈΠ½Ρ‹Ρ… сцСнария:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠœΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°
Excel (.xlsx,.xls) Π§Ρ‚Π΅Π½ΠΈΠ΅XDTO ΠΈΠ»ΠΈ COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("Excel.Application") Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;
Π’Π°Π±Π»ΠΈΡ†Π°.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ);
Массив = Π’Π°Π±Π»ΠΈΡ†Π°.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠœΠ°ΡΡΠΈΠ²;
JSON ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒJSON Π”Π°Π½Π½Ρ‹Π΅JSON = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅JSON;
Π”Π°Π½Π½Ρ‹Π΅JSON.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°JSON);
Массив = ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒJSON(Π”Π°Π½Π½Ρ‹Π΅JSON);
XML ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒXML Π”Π°Π½Π½Ρ‹Π΅XML = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅XML;
Π”Π°Π½Π½Ρ‹Π΅XML.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ»(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ);
Массив = ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒXML(Π”Π°Π½Π½Ρ‹Π΅XML);

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Excel Ρ‡Π΅Ρ€Π΅Π· COMΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ установлСн Microsoft Excel ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ вСрсии. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° β€” использованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ EPPlus (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹). Для JSON/XML провСряйтС структуру Π΄Π°Π½Π½Ρ‹Ρ…: Ссли Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° (xlsx ΠΈΠ»ΠΈ xls)

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ пСрвая строка содСрТит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ

Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Excel ΠΏΠ΅Ρ€Π΅Π΄ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π² 1Π‘

Π‘ΠΎΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π΄Π°Ρ‚Ρ‹, числа, строки) с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² 1Π‘-->

5. ДинамичСскиС массивы ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

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

  • πŸ”„ ДинамичСскиС списки: ДинамичСскийБписок автоматичСски ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ.
  • πŸ“Š ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°, БоотвСтствиС ΠΈΠ»ΠΈ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ”— БвязанныС массивы: ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ массив ссылаСтся Π½Π° элСмСнты Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, массив ссылок Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования БоотвСтствия для хранСния ΠΏΠ°Ρ€"ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅":

БоотвСтствиСЦСн = Новый БоотвСтствиС;

БоотвСтствиСЦСн.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€1", 1000);

БоотвСтствиСЦСн.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€2", 1500);

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

Π¦Π΅Π½Π° = БоотвСтствиСЦСн.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€1"); // Π’Π΅Ρ€Π½Π΅Ρ‚ 1000

πŸ“Œ ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄: Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ часто ΠΈΡΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π½Ρ‹ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹), БоотвСтствиС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ массива Π² Ρ†ΠΈΠΊΠ»Π΅. Для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, список email-адрСсов Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ²) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ.

πŸ’‘

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π±ΠΎΠ»Π΅Π΅ 10 000 элСмСнтов) ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ДинамичСскимБпискам ΠΈΠ»ΠΈ Запросам вмСсто статичСских массивов. Π­Ρ‚ΠΎ снизит Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ускорит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π² 1Π‘. Π’ΠΎΡ‚ самыС распространСнныС ошибки ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

Ошибка ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° РСшСниС
ИндСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Массив[10] Π² массивС ΠΈΠ· 5 элСмСнтов). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.
Π’ΠΈΠΏ Π½Π΅ совпадаСт ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² массив строку, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ содСрТит числа (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ явно: Число(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).
ΠŸΡƒΡΡ‚Ρ‹Π΅ элСмСнты Π’ массивС ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ НСопрСдСлСно послС Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ заполнСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Массив.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ провСряйтС элСмСнты Π½Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.
МСдлСнная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ большим массивам тормозят Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ массивы Π½Π° Запросы ΠΈΠ»ΠΈ ДинамичСскиСБписки.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ массив Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² 1Π‘ массивы ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отразятся Π½Π° исходном массивС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, создайтС копию:

Ѐункция ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠœΠ°ΡΡΠΈΠ²(Массив)

КопияМассива = Новый Массив;

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

КопияМассива.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с КопияМассива

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

FAQ: ЧастыС вопросы ΠΎ массивах Π² 1Π‘

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° массива Π² ΠΎΠ΄ΠΈΠ½?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Массив.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ:

Массив1 = Новый Массив(1, 2, 3);

Массив2 = Новый Массив(4, 5, 6);

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив2 Π¦ΠΈΠΊΠ»

Массив1.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Или Ρ‡Π΅Ρ€Π΅Π· Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ:

Массив1.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(Массив1.ВСрхняяГраница + 1, Массив2);
МоТно Π»ΠΈ Π² 1Π‘ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ассоциативный массив (ΠΊΠ°ΠΊ Π² PHP)?

Π”Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ БоотвСтствиС:

ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый БоотвСтствиС;

ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ΠΊΠ»ΡŽΡ‡1","Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1");

ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("ΠΊΠ»ΡŽΡ‡2", 100);

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ("ΠΊΠ»ΡŽΡ‡1");

Как ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ НаправлСниСБортировки.Π£Π±Ρ‹Π²Π°Π½ΠΈΠ΅:

Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(НаправлСниСБортировки.Π£Π±Ρ‹Π²Π°Π½ΠΈΠ΅);

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ сортировки ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сравнСния:

Массив.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒΠŸΠΎΠ”Π»ΠΈΠ½Π΅);

Ѐункция Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒΠŸΠΎΠ”Π»ΠΈΠ½Π΅(Π—Π½Π°Ρ‡1, Π—Π½Π°Ρ‡2)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚?(Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π—Π½Π°Ρ‡1) > Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π—Π½Π°Ρ‡2), 1, -1);

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массив Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘?

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π½Π΅ хранятся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π±Π°Π·Π΅. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² строку (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ) ΠΈ сохранитС Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅");

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ;

Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Π°Π±Π»ΠΈΡ†Π°.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ;

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ массива Π² сообщСниС показываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏ?

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ массивы Π² строку. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»:

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ="";

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ = Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ +?(Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ="","",",") + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅);