У меня есть длинная строка значений, разделенных вкладками, и я хочу вырезать данные, как если бы использовался unix cut -f. Если я использую команду cut -f5, она обрезает все мои данные в один столбец значения, которое находится на 5-й позиции. Есть ли функция PHP, которая может сделать то же самое?
Ниже приведен пример необработанного файла с каждым словом в строке, разделенным вкладкой
Результат был бы следующим, если бы я запустил команду cut -f2:
Я думаю, что ответ на самом деле «нет», насколько я знаю. Но вы можете объединить несколько функций PHP для достижения того же результата.
Ты можешь использовать file
читать строки из файла в массив
$rows = file($path_to_your_file);
Затем преобразуйте этот массив строк в многомерный массив
$rows = array_map(function($row){
return str_getcsv($row, "\t");
}, $rows);
Затем получите нужный столбец из этого массива.
$column_5 = array_column($rows, 4);
Не так кратко, как cut -f5
, но PHP редко для таких вещей.
Кстати, если вам все равно, что ваша PHP-программа будет работать только на системах с Unix Cut, вы можете просто использовать Cut -f в shell_exec
,
Других решений пока нет …