LogansUA
9/4/2015 - 3:00 PM

Recursive deleting fields by pattern

Recursive deleting fields by pattern

<?php

/**
 * Recursive deleting fields by pattern
 *
 * @param array $array   Haystack
 * @param array $pattern Pattern
 */
public function deleteFields(&$array, $pattern)
{
    foreach ($array as $index => &$row) {
        $inArray = in_array($index, $pattern, true);

        if ($inArray || !is_array($array[$index])) {
            if ($inArray) {
                unset($array[$index]);
            }

            continue;
        }

        $this->deleteFields($array[$index], $pattern);
    }
}