Очищення комбінованого рнр масиву від порожніх елементів
Буває необхідно очистити РНР масив від порожніх елементів для того щоб даремно не витрачати час на обробку цих порожніх елементів! Це завдання не є складною коли потрібно відфільтрувати звичайний, не багатовимірний масив але, вона ускладнюється коли потрібне очищення від порожніх елементів комбінованого РНР масиву.Наприклад ми відкрили файл і помістили всі його рядки в РНР масив і залишили в ньому тільки унікальні значення за допомогою РНР функцій:
Якщо у файлі "$ proxyListFile" було з десяток порожніх рядків, то після його відкриття в ньому залишилися як мінімум один порожній рядок, а якщо були рядки з різною кількістю прогалин, то і вони зависнуть в результаті "$ proxyListArray".
Найпростіший спосіб очищення РНР масиву від порожніх елементів це:
Але він може не підійти через наявність прогалин в елементах, мало тога - нам би бажано зберегти порядкові номери РНР масиву 1,2,3,4, а не 1,3,4. В такому випадку можна запропонувати конструкцію:
Але, така РНР конструкція далека від досконалості і не підійде для очищення асоціативних або багатовимірних масивів! Наприклад у нас є такий ось безмежно комбінований, Чумачечая масив, він же простий (нумерований), він же асоціативний, він же багатовимірний / вкладений масив:
Виглядати все це неподобство буде наступним чином:
З усього цього беззаконня нам потрібно видалити порожні елементи РНР масиву і при цьому зберегти порядок нумерації елементів РНР масиву 1,2,3,4, а не 1,3,4 в разі видалення одного з елементів. Для обробки такого Чумачечая масиву нам відповідно потрібна така ж чумачечая функція, наведену вище РНР функцію модифікуємо до такої кондиції:
Як бачимо отримали бажаний результат без порожніх елементів в РНР масиві і зі збереженням нумерації елементів РНР масиву 1,2,3,4, а не 1,3,4 в разі видалення одного з них:
Перша РНР функція "function checkArray ($ array)" перевіряє чи є надісланий значення масивом і якщо так, то повертає нумерований РНР масив з іменами елементів, це потрібно для того щоб однаково звертатися по номерному ідентифікатором до звичайних (нумерованим) і асоціативним масивів.
Друга РНР функція "function cleanArray ($ array)" власне видаляє елементи РНР масиву з порожніми значеннями, яка попередньо перевіряє ідентифікатор елемента (цифра або рядок) і його значення (вкладений масив або строкове значення). Асоціативні елементи РНР масиву просто видаляються функцією "unset ($ array [$ a]);", елементи масиву мають порядкові номери в якості ідентифікатора видаляються функцією "array_splice ($ array [$ a])" зі збереженням порядку нумерації елементів РНР масиву 1, 2,3,4, а не 1,3,4 в разі видалення одного з них.
Наведена вище РНР функція підходить як для очищення звичайних масивів від порожніх елементів так і для очищення багатовимірних звичайних і асоціативних масивів.