Ouzo\Utilities\Arrays::toMap PHP Метод

toMap() публичный статический Метод

Example: $array = range(1, 2); $map = Arrays::toMap($array, function ($elem) { return $elem * 10; }, function ($elem) { return $elem + 1; }); Result: Array ( [10] => 2 [20] => 3 )
public static toMap ( array $elements, callable $keyFunction, callable | null $valueFunction = null ) : array
$elements array
$keyFunction callable
$valueFunction callable | null
Результат array
    public static function toMap(array $elements, $keyFunction, $valueFunction = null)
    {
        if ($valueFunction == null) {
            $valueFunction = Functions::identity();
        }
        $keys = array_map($keyFunction, $elements);
        $values = array_map($valueFunction, $elements);
        return empty($keys) ? array() : array_combine($keys, $values);
    }

Usage Example

Пример #1
0
 public static function parse($data)
 {
     $array = array();
     $items = Arrays::filterNotBlank(explode(',', $data));
     foreach ($items as $item) {
         $elements = explode(';', $item);
         $media = Arrays::first($elements);
         $params = array_slice($elements, 1);
         list($type, $subtype) = Arrays::map(explode('/', $media), Functions::trim());
         $q = Arrays::getValue(self::extractParams($params), 'q');
         $array[] = array('type' => $type, 'subtype' => $subtype, 'q' => $q);
     }
     usort($array, '\\Ouzo\\Http\\AcceptHeaderParser::_compare');
     return Arrays::toMap($array, function ($input) {
         return $input['type'] . '/' . $input['subtype'];
     }, function ($input) {
         return $input['q'];
     });
 }
All Usage Examples Of Ouzo\Utilities\Arrays::toMap