这就是文字的样子
a 9 1 2 2
a 10 3 10 5
b 16.98 15.15 13.10
b 0.71 13.57 7.84
a 2 6 10 10
a 10 10 5 8
a 7 10 9 10
b 13.11 18.67 14.86
我知道我应该使用fgetl,但我似乎无法掌握它 这就是我想要的
a=[9 1 2 2, 10 3 10 5, 2 6 10 10, 10 10 5 8, 7 10 9 10]
b=[16.98 15.15 13.10,0.71 13.57 7.84, 13.11 18.67 14.86]
提前非常感谢!
答案 0 :(得分:1)
这是我如何在php中解决你的问题
$v = "a 9 1 2 2 a 10 3 10 5 b 16.98 15.15 13.10 b 0.71 13.57 7.84 a 2 6 10 10 a 10 10 5 8 a 7 10 9 10 b 13.11 18.67 14.86";
$arary = explode(' ', $v);
$myVal = array();
$key = $arary[0];
$oldKey = $key;
for($i=0;$i<count($arary);$i++)
{
if(is_numeric($arary[$i])){
if($oldKey == $key){
$myVal[$key] .= $arary[$i].' ';
}else{
$myVal[$key] .= $arary[$i].', ';
}
}elseif ($key != $arary[$i])
{
$oldKey = $key;
$key = $arary[$i];
}
}
echo '<pre>';
print_r($myVal);
echo '</pre>';
输出
Array
(
[a] => 9 1 2 2 10 3 10 5 2, 6, 10, 10, 10, 10, 5, 8, 7, 10, 9, 10,
[b] => 16.98, 15.15, 13.10, 0.71, 13.57, 7.84, 13.11, 18.67, 14.86,
)
答案 1 :(得分:0)
您可以这样做:
$fp = fopen('file.txt','r'); $result = array(); while($line = fread($fp, 1024) != false) { $line = explode(" ", $line); $key = array_shift($line); if(!isset($result[$key]) { $result[$key] = array(); } foreach($line as $value) { $result[$key][] = $value; } } fclose($fp); var_dump($result);