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ć.