我有一个结构如下的巨大文本文件:
email 1
email 14
email 1
email 244
email 232
email 23
email 1
我试图将文本文件拉入一个数组,然后我可以在其中删除所有没有第一名的电子邮件。现在我限制为前 20 个,所有这些都有数字 1,但我在数组中得到的唯一东西是数字 1。当我吐出行中的项目数时,它显示 1。
$file = "list.txt";// Your Temp Uploaded file
$cols = array();
ini_set('auto_detect_line_endings', true);
$fh = fopen($file, 'r');
$i = 0;
while ($line = fgetcsv($fh, 1000, "\t") !== false) {
$cols[] = $line;
if($i == 19) { break; }
$i++;
}
echo "<pre>";
print_r($cols);
echo "</pre>";
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 1
[8] => 1
[9] => 1
[10] => 1
[11] => 1
[12] => 1
[13] => 1
[14] => 1
[15] => 1
[16] => 1
[17] => 1
[18] => 1
[19] => 1
)
我已经尝试将 \t 更改为 \n 但这并没有改变结果。如果我可以一步完成这一切会更好,请检查行中的第二项,如果它是一个,则将第一项(电子邮件)添加到数组中。否则不要。在这一点上,我会拿走我能得到的!有什么想法或建议吗?
我现在正在获取数组中的项,但它会将列合并为一个数组项:
Array
(
[0] => Array
(
[0] => EMAIL 1
)
)
有没有办法让我将列吐出到单独的键中?所以:
Array
(
[0] => Array
(
[0] => EMAIL
[1] => 1
)
)
最佳答案
您需要用更多的 ( )
while ($line = fgetcsv($fh, 1000, "\t") !== false) {
应该是
while (($line = fgetcsv($fh, 1000, "\t")) !== false) {
关于PHP制表符将文本文件分隔成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452541/
我有两个文本文件,master.txt和926.txt。如果926.txt中有一行不在master.txt中,我想写入一个新文件notinbook.txt。我写了我能想到的最好的东西,但考虑到我是一个糟糕的/新手程序员,它失败了。这是我的东西g=File.new("notinbook.txt","w")File.open("926.txt","r")do|f|while(line=f.gets)x=line.chompifFile.open("master.txt","w")do|h|endwhile(line=h.gets)ifline.chomp!=xputslineendende
例如,如果我有YAML文件en:questions:new:'NewQuestion'other:recent:'Recent'old:'Old'这最终会变成一个json对象,例如{'questions.new':'NewQuestion','questions.other.recent':'Recent','questions.other.old':'Old'} 最佳答案 由于问题是关于在Rails应用程序上使用YAML文件进行i18n,因此值得注意i18ngem提供了一个辅助模块I18n::Backend::Flatten完全像
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
所以我在Ruby方面几乎是个新手,我整理了一个代码来解决MinCut问题(对于一个作业,是的——我整理并测试了那部分代码),并且我无法弄清楚如何读取文件并将其放入数组数组中。我有一个文本文件要阅读,其中包含不同长度的列,如下所示137791642123134348123134109我想将它读入一个二维数组,其中每一行和每一列都被拆分,每一行都进入一个数组。因此,上述示例的结果数组将是:[[1,37,79,164],[2,123,134],[3,48,123,134,109]]我读取文本文件的代码如下:defread_array(file,count)int_array=[]File.f
我有一个相对较大的文本文件,其中包含如下分层的数据block:ANALYSISOFXSIGNAL,CASE:1TUNEX=0.2561890123390808LineFrequencyAmplitudePhaseErrormxmymsp10.2561890123391E+000.204316425208E-010.164145385871E+030.00000000000E+00100020.2562865535359E+000.288712798671E-01-.161563284233E+030.97541196785E-041000(它们包含更多行然后重复)我想先提取TUNEX=
如何从文本文件中删除单个特定行?例如第三行,或任何其他行。我试过这个:line=2file=File.open(filename,'r+')file.each{last_line=file.posunlessfile.eof?}file.seek(last_line,IO::SEEK_SET)file.close不幸的是,它什么都不做。我尝试了很多其他解决方案,但没有任何效果。 最佳答案 我认为由于文件系统的限制,您不能安全地这样做。如果你真的想做一个就地编辑,你可以尝试将它写入内存,编辑它,然后替换旧文件。但请注意,这种方法至少存
给定一个Ruby数组字符串,其中一些项目在引号中包含逗号:my_string.inspect#=>"\"hey,you\",21"我怎样才能得到一个数组:["hey,you","21"] 最佳答案 Ruby标准CSV库的.parse_csv就是这样做的。require'csv'"\"hey,you\",21".parse_csv#=>["hey,you","21"] 关于ruby-用逗号将字符串分割成数组,除非逗号在引号内,我们在StackOverflow上找到一个类似的问题:
我正在编写一个导入脚本来处理一个可能有数十万行的文件(日志文件)。使用一个非常简单的方法(如下)占用了足够的时间和内存,我觉得它随时都会耗尽我的MBP,所以我终止了这个过程。#...File.open(file,'r')do|f|f.each_linedo|line|#dostuffheretolineendend这个文件特别有642,868行:$wc-lnginx.log/code/src/myimport642868../nginx.log有谁知道处理此文件中每一行的更有效(内存/cpu)方法吗?更新上面f.each_line中的代码只是将正则表达式与该行进行匹配。如果匹配失败,我
根据AWSDocs:Anupdateexpressionconsistsofoneormoreclauses.EachclausebeginswithaSET,REMOVE,ADDorDELETEkeyword.Youcanincludeanyoftheseclausesinanupdateexpression,inanyorder.However,eachactionkeywordcanappearonlyonce.我无法在一个update_expression中获得正确的SET和REMOVE语法:params={key:{'id'=>{s:'123'}},table_name:'c
到目前为止,我已经成功上传了一个文件:#Innew.html.erb并访问Controller中的文件#Incontroller#create@text=params[:upload][:file]但是,这给我的只是文件名,而不是文件的内容。如何访问其内容?我知道这是一个跳跃,但是一旦我可以访问文件的内容,是否可以上传文件夹并遍历文件? 最佳答案 完整示例以上传包含联系人的导入文件为例。您无需存储此导入文件,只需对其进行处理并丢弃即可。路线routes.rbresources:contactsdocollectiondoget'im