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 =]