Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从csv数据中提取列_Php_Arrays_Csv - Fatal编程技术网

在PHP中从csv数据中提取列

在PHP中从csv数据中提取列,php,arrays,csv,Php,Arrays,Csv,我在PHP中有csv数据,如下所示(注意,它是包含新行字符的文本,而不是文件): 如何将列提取为不包含标题的数组?例如,如果我想提取第4列,它将包括5和9 更新:我已经试过了 $te = array_column($data,'D'); 我得到一个错误:警告:array\u column()期望参数1是array,您可以使用它将每一行作为数组读取(丢弃第一行以跳过标题)。然后只保留相关列,例如: $lines = preg_split("/(?:\r?\n|\r\n?)/", $data);

我在
PHP
中有
csv
数据,如下所示(注意,它是包含新行字符的文本,而不是文件):

如何将列提取为不包含标题的数组?例如,如果我想提取第4列,它将包括5和9

更新:我已经试过了

$te = array_column($data,'D');
我得到一个错误:
警告:array\u column()期望参数1是array,

您可以使用它将每一行作为数组读取(丢弃第一行以跳过标题)。然后只保留相关列,例如:

$lines = preg_split("/(?:\r?\n|\r\n?)/", $data); // Split lines
array_shift($lines);                             // Discard header

$result = array();
foreach ($lines as $csv) {
    $row = str_getcsv($csv);
    $result[] = $row[3];
}
var_dump($result);
根据下面评论中的建议,如果您需要更强大的通用CSV数据支持,您可以将字符串转储到虚拟文件中,然后使用(该文件已正确处理多行输入的解析):

可以使用将每行作为数组读取(丢弃第一行以跳过标题)。然后只保留相关列,例如:

$lines = preg_split("/(?:\r?\n|\r\n?)/", $data); // Split lines
array_shift($lines);                             // Discard header

$result = array();
foreach ($lines as $csv) {
    $row = str_getcsv($csv);
    $result[] = $row[3];
}
var_dump($result);
根据下面评论中的建议,如果您需要更强大的通用CSV数据支持,您可以将字符串转储到虚拟文件中,然后使用(该文件已正确处理多行输入的解析):

可以使用将每行作为数组读取(丢弃第一行以跳过标题)。然后只保留相关列,例如:

$lines = preg_split("/(?:\r?\n|\r\n?)/", $data); // Split lines
array_shift($lines);                             // Discard header

$result = array();
foreach ($lines as $csv) {
    $row = str_getcsv($csv);
    $result[] = $row[3];
}
var_dump($result);
根据下面评论中的建议,如果您需要更强大的通用CSV数据支持,您可以将字符串转储到虚拟文件中,然后使用(该文件已正确处理多行输入的解析):

可以使用将每行作为数组读取(丢弃第一行以跳过标题)。然后只保留相关列,例如:

$lines = preg_split("/(?:\r?\n|\r\n?)/", $data); // Split lines
array_shift($lines);                             // Discard header

$result = array();
foreach ($lines as $csv) {
    $row = str_getcsv($csv);
    $result[] = $row[3];
}
var_dump($result);
根据下面评论中的建议,如果您需要更强大的通用CSV数据支持,您可以将字符串转储到虚拟文件中,然后使用(该文件已正确处理多行输入的解析):


如果这是逗号分隔的字符串,则在本例中可以使用
str\u getcsv()

// load the string and explode, then apply str_getcsv
$data = array_map('str_getcsv', explode("\n", $request->getResponseBody()));
array_shift($data); // remove the header
$fourth_column = array();
foreach($data as $line) {
    if(!empty($line[3])) {
        $fourth_column[] = $line[3]; // indices start at zero
    }   
}

如果这是逗号分隔的字符串,则在本例中可以使用
str\u getcsv()

// load the string and explode, then apply str_getcsv
$data = array_map('str_getcsv', explode("\n", $request->getResponseBody()));
array_shift($data); // remove the header
$fourth_column = array();
foreach($data as $line) {
    if(!empty($line[3])) {
        $fourth_column[] = $line[3]; // indices start at zero
    }   
}

如果这是逗号分隔的字符串,则在本例中可以使用
str\u getcsv()

// load the string and explode, then apply str_getcsv
$data = array_map('str_getcsv', explode("\n", $request->getResponseBody()));
array_shift($data); // remove the header
$fourth_column = array();
foreach($data as $line) {
    if(!empty($line[3])) {
        $fourth_column[] = $line[3]; // indices start at zero
    }   
}

如果这是逗号分隔的字符串,则在本例中可以使用
str\u getcsv()

// load the string and explode, then apply str_getcsv
$data = array_map('str_getcsv', explode("\n", $request->getResponseBody()));
array_shift($data); // remove the header
$fourth_column = array();
foreach($data as $line) {
    if(!empty($line[3])) {
        $fourth_column[] = $line[3]; // indices start at zero
    }   
}


使用
fgetcsv()
将数据读入一个数组,并在数组中循环提取所需的列。对于PHP5.5+,您可以使用
array\u column()?尝试
fgetcsv()
不确定您是否刚刚接触PHP,但大多数“我该如何…”问题的第一站应该是PHP手册。如果有很多人在某个时候不得不这么做,那么很可能有三种不同的内置功能。如果这是一个重复的,也许你可以链接,否则看起来是一个合理的问题,完整的答案将不胜感激!这是一个XY问题。您询问的是如何提取列,但还不清楚数据的格式,或者您打算如何首先处理它。您的更新显示了一个未知对象的方法,该方法以未指定的格式返回数据。提供适当的上下文,你会得到一个好的答案。问一个模糊的问题,你就会猜到。用
fgetcsv()
将数据读入数组,然后循环通过数组提取你想要的列。对于PHP5.5+,您可以使用
array\u column()?尝试
fgetcsv()
不确定您是否刚刚接触PHP,但大多数“我该如何…”问题的第一站应该是PHP手册。如果有很多人在某个时候不得不这么做,那么很可能有三种不同的内置功能。如果这是一个重复的,也许你可以链接,否则看起来是一个合理的问题,完整的答案将不胜感激!这是一个XY问题。您询问的是如何提取列,但还不清楚数据的格式,或者您打算如何首先处理它。您的更新显示了一个未知对象的方法,该方法以未指定的格式返回数据。提供适当的上下文,你会得到一个好的答案。问一个模糊的问题,你就会猜到。用
fgetcsv()
将数据读入数组,然后循环通过数组提取你想要的列。对于PHP5.5+,您可以使用
array\u column()?尝试
fgetcsv()
不确定您是否刚刚接触PHP,但大多数“我该如何…”问题的第一站应该是PHP手册。如果有很多人在某个时候不得不这么做,那么很可能有三种不同的内置功能。如果这是一个重复的,也许你可以链接,否则看起来是一个合理的问题,完整的答案将不胜感激!这是一个XY问题。您询问的是如何提取列,但还不清楚数据的格式,或者您打算如何首先处理它。您的更新显示了一个未知对象的方法,该方法以未指定的格式返回数据。提供适当的上下文,你会得到一个好的答案。问一个模糊的问题,你就会猜到。用
fgetcsv()
将数据读入数组,然后循环通过数组提取你想要的列。对于PHP5.5+,您可以使用
array\u column()?尝试
fgetcsv()
不确定您是否刚刚接触PHP,但大多数“我该如何…”问题的第一站应该是PHP手册。如果有很多人在某个时候不得不这么做,那么很可能有三种不同的内置功能。如果这是一个重复的,也许你可以链接,否则看起来是一个合理的问题,完整的答案将不胜感激!这是一个XY问题。您询问的是如何提取列,但还不清楚数据的格式,或者您打算如何首先处理它。您的更新显示了一个未知对象的方法,该方法以未指定的格式返回数据。提供适当的上下文,你会得到一个好的答案。问一个流浪汉