Основні функції:
explode(',', 'php,laravel,vue'); // ['php', 'laravel', 'vue']
explode(',', 'a,b,c,d', 2); // ['a', 'b,c,d'] - не більше 2 частин
implode(', ', ['php', 'laravel']); // 'php, laravel'
str_split('abcdef', 2); // ['ab', 'cd', 'ef'] - байтами!
mb_str_split('привіт', 2); // ['пр', 'ив', 'іт'] - символами
preg_split('/[\s,;]+/', 'php, laravel; vue', -1, PREG_SPLIT_NO_EMPTY);
// ['php', 'laravel', 'vue'] - кілька роздільників
Типові пастки:
- Порожній рядок:
explode(',', '')повертає['']- масив з одним порожнім елементом, а не порожній масив. Для введення користувача часто потрібнеarray_filter(array_map('trim', explode(',', $input))). - Пробіли:
explode(',', 'a, b')дає['a', ' b']- з пробілом. Звідсиarray_map('trim', ...). - Кирилиця:
str_splitділить байти й ламає багатобайтові символи. Для тексту -mb_str_split. - CSV не розбирають через
explode: значення можуть містити коми в лапках ("Київ, Україна"). Для цьогоstr_getcsv()чиSplFileObjectзREAD_CSV.
У Laravel зручніше через Str і колекції:
Str::of('php, laravel , vue')->explode(',')->map(fn ($s) => trim($s))->filter();