Dodajemy ostatnie szlify do naszego helpera Arr. Dwie metody, które okazały się pomocne podczas pisania naszego projektu MVC.
Pierwsza to exceptKeys, pozwalająca wyłączyć pewne klucze z tablicy:
<?php
class Arr{
//(...)
public static function exceptKeys($assoc, $excluded_fields) {
return array_diff_key($assoc, array_flip($excluded_fields));
}
}
Tak wygląda w działaniu:
$data = [
'user' => 'John',
'password' => md5('helloworld'),
'confirmPassword' => md5('helloworld'),
'email' => 'john.doe@wp.pl'
];
$excluded_fields = ['password', 'confirmPassword'];
print_r(Arr::exceptKeys($data, $excluded_fields));
//Array ( [user] => John [email] => john.doe@wp.pl )
Druga zaś z tablicy mieszanej usuwa klucze numeryczne, indeksowe:
<?php
class Arr{
//(...)
public static function withoutNumericKeys($arr){
return array_filter($arr, function($k){
return !is_numeric($k);
}, ARRAY_FILTER_USE_KEY);
}
}
W działaniu wygląda tak:
$jim = ["ID" => 14 , 0 => 14, "name" => "Jim", 1 => "Jim" , "age" => 29, 2 => 29 ];
print_r($jim);
//Array ( [ID] => 14 [0] => 14 [name] => Jim [1] => Jim [age] => 29 [2] => 29 )
print_r(Arr::withoutNumericKeys($jim));
// Array ( [ID] => 14 [name] => Jim [age] => 29 )