private function recursive(array $data, callable $cb)
    {
        foreach ($data as $key => $value) {
            if (is_array($value) || is_object($value)) {
                $this->recursive((array) $value, $cb);
            } else {
                $cb($value, $key);
            }
        }
    }
private function recursive(array $data, callable $cb)
    {
        foreach ($data as $key => $value) {
            if (is_array($value) || is_object($value)) {
                $this->recursive((array) $value, $cb);
            } else {
                $cb($value, $key);
            }
        }
    }
private function recursive ( array $ data , callable $ cb ) { foreach ( $ data as $ key => $ value ) { if ( is_array ( $ value ) || is_object ( $ value ) ) { $ this -> recursive ( ( array ) $ value , $ cb ) ; } else { $ cb ( $ value , $ key ) ; } } }
Recursive walk of a table or object

@param array    $data

@param callable $cb
Recursive walk of a table or object