PHP 中是否有 unix cut -f 的等效函数?
Is there an equivalent function in PHP for unix cut -f?
我有一长串由制表符分隔的值,我希望像使用 unix cut -f 一样剪切数据。如果我使用 cut -f5,它会将我的所有数据剪切到第 5 个位置的值的单个列中。是否有可以执行相同操作的 PHP 函数?
下面是原始文件的示例,行中的每个单词由制表符分隔
如果我 运行 cut -f2:
结果如下
据我所知,我想答案确实是 "no"。但是您可以组合几个 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 的系统上运行,您实际上可以在 shell_exec
.[=16 中使用 cut -f =]
我有一长串由制表符分隔的值,我希望像使用 unix cut -f 一样剪切数据。如果我使用 cut -f5,它会将我的所有数据剪切到第 5 个位置的值的单个列中。是否有可以执行相同操作的 PHP 函数?
下面是原始文件的示例,行中的每个单词由制表符分隔
如果我 运行 cut -f2:
结果如下据我所知,我想答案确实是 "no"。但是您可以组合几个 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 的系统上运行,您实际上可以在 shell_exec
.[=16 中使用 cut -f =]