Rozbudowujemy nasz Arr helper o kolejne metody. Z helepra będziemy korzystać w naszym frameworku MVC. Do dzieła.

Kilka metod do dodania na dobry początek:

<?php
class Arr{
    
    //(...)

    public static function keys($array){
        return array_keys($array);
    }

    public static function values($array){
        return array_values($array);
    }

    public static function divide($array){
        return [array_keys($array), array_values($array)];
    }

    public static function flip($array){
        return array_flip($array);
    }

   
}
$arr1 = ['name' => "John", 'age' => 30];
print_r(Arr::keys($arr1));
//Array ( [0] => name [1] => age )
print_r(Arr::values($arr1));
//Array ( [0] => John [1] => 30 )
print_r(Arr::divide($arr1));
// Array ( 
//     [0] => Array ( [0] => name [1] => age ) 
//     [1] => Array ( [0] => John [1] => 30 ) 
//     )
print_r(Arr::flip($arr1));
// Array ( [John] => name [30] => age )

Teraz metody sprawdzające, czy dana tablica jest listą czy nie oraz metody do uzyskiwania kluczy:

<?php
class Arr{
    
    //(...)

    public static function isAssoc(array $array)
    {
        return ! array_is_list($array);
    }

    public static function isList($array)
    {
        return array_is_list($array);
    }

    public static function firstKey($array){
        return array_is_list($array) ? 0 : array_key_first($array);
    }

    public static function lastKey($array){
        return array_is_list($array) ? count($array) - 1 : array_key_last($array);
    }
}

$arr = ['name' => "John", 'age' => 30];
var_dump(Arr::isAssoc($arr));
//true
var_dump(Arr::isList($arr));
//false
echo Arr::firstKey($arr);
//name
echo Arr::lastKey($arr);
//age

Teraz metody do uzyskiwania pierwszego i ostatniego rekordu:

<?php
class Arr{
    
   //(...)

    public static function first($array){
        foreach($array as $element){
            return $element;
        }
    }

    public static function last($array){
        foreach(array_reverse($array) as $element){
            return $element;
        }
    }
}
$arrassoc = ['name' => "John", 'age' => 30];
echo Arr::first($arrassoc);
//John
echo Arr::last($arrassoc);
//30
echo Arr::first([1,2,3]);
//1
echo Arr::last([1,2,3]);
//3

Helpera będziemy rozbudowywać.