Easily loop over any Traversable or Array while keeping track of the index. It will also accept any other variable types, and cast those to an array.

With Counter you can both keep track of the current index and iteration while traversing any variable, regardless of which keys are being used. In addition to that, Counter also provides a stack of useful methods to check if the current iteration matches set requirements, for example Counter::first() and Counter::even().

Quickstart

$ composer require cupoftea/counter ^1.0

Laravel integration

Add the Counter ServiceProvider to your config/app.php.

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */

        'Illuminate\Foundation\Providers\ArtisanServiceProvider',
        'Illuminate\Auth\AuthServiceProvider',
        'Illuminate\Bus\BusServiceProvider',

        ...

        'CupOfTea\Counter\CounterServiceProvider',

    ],

Optionally you can also add the Counter Facade if you wish to use it.

    'aliases' => [

        'App'       => 'Illuminate\Support\Facades\App',
        'Artisan'   => 'Illuminate\Support\Facades\Artisan',
        'Auth'      => 'Illuminate\Support\Facades\Auth',

        ...

        'Counter' => 'CupOfTea\Counter\Facades\Counter',

    ],