我正在一个相当简单的网站上工作,您可以上传包含某种信息的文件,网站会分析这些数据,返回某些值,如平均值,条形图等。 梯子一切都很顺利,但我很难读取信息并将其转换为数组。 在这种情况下,我有一个日常温度为12月的.txt文件。 我需要将这些值放入单独的数组中,但每当我使用implode时,数组都会简单地拆分成行。这是var_dump;
array(7) {
[0]=> string(107) "0 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 "
[1]=> string(107) " 1 3.4 7.4 8.3 5.9 10.4 10.8 8.6 6.6 6.7 9.9 6.2 9.1 11 7 5.4 5.4 8.7 4 9.4 5.9 8.2 2 0.7 9.6 6.9 3.2 10.4"
[2]=> string(107) " 9.3 6.5 4.1 7.8 7.2 5.7 0.3 8.6 4.5 2.6 6.6 8.6 8.2 9 7.2 10.4 3 1.6 10.9 0.9 4 10 7.1 10.7 2.1 7.4 4 7.7"
[3]=> string(107) " -1.6 8.4 0.8 -0.3 8.9 5.6 6.5 9.5 8 10 4 -0.2 11.1 1.7 2.2 9.7 9.8 9.9 -0.2 9.6 6 8.8 1.5 5.5 1.4 -0.7 9."
[4]=> string(107) "3 6.9 7 8.9 8.6 7.8 5 1.2 11.1 -0.1 6.8 8.5 9.2 7.8 0.1 8.9 9.5 8.5 -2.3 2.8 4.2 1 7.6 6.4 6.1 9 7.3 7.8 "
[5]=> string(107) "6 7.2 9.6 1.1 4.8 4.8 6.4 6.1 3.7 6.7 7.8 9.7 2.2 1.7 3.8 1.8 7 5.8 6.7 8.8 8.5 5.4 7 1.6 9.9 6.6 3.4 5.2 "
[6]=> string(107) "8.7 7.3 1.1 3.4 3.3 7.5 10 5 2.2 2.4 4.6 4.1 7.4 6.9 9.6 3.8 8 -1.6 7.9 9 3.1 5.2 9.6 6.3 1.2 3.1 1.6 7.5 "
}
我需要跳过空格&当它们出现在那里以及每当有数字或浮点时,将它们放入相同的数组元素中。 例如,我们得到4.5 2.7 5,我需要4.5作为一个元素,然后2.7作为另一个元素,等等。 我尝试过使用上述条件的ifs,然而,它没有用。 我觉得我的语法很少,我还不熟悉或者可能是我忽略的一种功能。
这是我到目前为止所获得的干净代码;
<?php
$getcont = file_get_contents('C:\xampp\htdocs\gruodis.txt');
$contstr = str_split($getcont);
$a = 0;
$b = 0;
$c = 0;
$d = 0;
$sum = 0;
$contarr = array();
//fix the < values
for ($a = 0; $a < 7; $a++){
for ($b = 0; $b < 107; $b++){
$contarr[$a][$b] = $contstr[$c];
$c++;
}
echo '<br>';
}
echo '<br><br>';
foreach ($contarr as $key => $value){
$val = implode($value);
$contarr[$key] = $val;
}
var_dump($contarr);
?>
这是我使用的内容; https://pastebin.com/QgNzm6G8
提前致谢!
答案 0 :(得分:1)
下一个简单代码使用preg_split
和array_map
函数将行拆分为数字数组:
$splitted = array_map(
function($r) {
return preg_split('/\s+/', $r);
},
$data
);
var_dump($splitted);