首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将samples()与php-ml一起使用

将samples()与php-ml一起使用
EN

Stack Overflow用户
提问于 2017-04-28 23:22:35
回答 2查看 154关注 0票数 1

我使用php-ml并接收了一个6列数千行的.csv文件,我希望每个数组的每5个元素(列)都保存在$samples中。我尝试了下面的方法,它给出了每个数组的第一个元素。

代码语言:javascript
复制
$dataset = new CsvDataset('myCsvFile.csv', 1);

$samples = [];
foreach ($dataset->getSamples() as $sample) {
    $samples[] = $sample[0];
}

然而,这给了我每个数组的第一个元素,如果我按照我认为在语法上可以工作的方式改变$sample[0] to $sample[4],我就会得到一个未定义的偏移量。我是PHP新手,不明白为什么会发生这种情况。

如果代码如上所示并打印出来,则如下所示:

代码语言:javascript
复制
    Array
(
    [0] => 1157
    [1] => 1157
    [2] => 1157
    [3] => 1157
    [4] => 1157
    [5] => 1157
    [6] => 1157
    [7] => 1157
    [8] => 1157

...and等等。

EN

回答 2

Stack Overflow用户

发布于 2017-04-28 23:28:21

你可以试试这个

代码语言:javascript
复制
$csv = array();
$csvNewArray = array();
$lines = file('myCsvFile.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
    $csv[$key] = str_getcsv($value);
    if(isset($csv[$key][4])){
     $csvNewArray[$key] = $csv[$key][4];
    }
}
票数 0
EN

Stack Overflow用户

发布于 2017-04-28 23:47:21

使用fgetcsv()读取文件,然后访问这些数组的相应元素,以获取每行的第五项。

代码语言:javascript
复制
$fh = fopen("myCsvFile.csv", "r") or die("Can't open CSV file\n");
$csv = array();
$sample = array();
while ($row = fgetcsv($fh)) {
    $csv[] = $row;
    $sample[] = $row[4];
}
fclose($fh);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43683728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档