DEV Community

Manuel Canga
Manuel Canga

Posted on

PHP Tip: More useful explode with item list

Securely, you did some item list like this once, didn't you?:

<?php
function to_array(string $allowed_extensions): array {
  $allowed_list = explode(',', $allowed_extensions);
  return  array_map(fn($ext)=> trim($ext), $allowed_list);
}

to_array('.pdf, .odt, .doc'); //['.pdf', '.odt', '.doc']
Enter fullscreen mode Exit fullscreen mode

not bad, but this is better:

<?php
function to_array(string $allowed_extensions): array {
    $allowed_list = str_word_count($allowed_extensions, format: 1, characters: '.');
    return  array_map(fn($ext)=> trim($ext), $allowed_list);
}

to_array('.pdf, .odt, .doc'); //['.pdf', '.odt', '.doc']
Enter fullscreen mode Exit fullscreen mode

Why?, because now you can change list format without changing nothing more. Look!:

to_array('.pdf|.odt|.doc'); //['.pdf', '.odt', '.doc']
to_array('.pdf;.odt;.doc'); //['.pdf', '.odt', '.doc']
Enter fullscreen mode Exit fullscreen mode

Happy coding!

Top comments (0)