是否有可能在PHP此类数据转换数据到相关联的阵列的PHP
ABANO TERME A001
ABBADIA CERRETO A004
ABBADIA LARIANA A005
ABBADIA SAN SALVATORE A006
ABBASANTA A007
ABBATEGGIO A008
ABBIATEGRASSO A010
的转换为相关联的阵列,其中在第一列是键和在第二列是值?
是否有可能在PHP此类数据转换数据到相关联的阵列的PHP
ABANO TERME A001
ABBADIA CERRETO A004
ABBADIA LARIANA A005
ABBADIA SAN SALVATORE A006
ABBASANTA A007
ABBATEGGIO A008
ABBIATEGRASSO A010
的转换为相关联的阵列,其中在第一列是键和在第二列是值?
$handle = fopen(path\to\file\filename, "r");
$result_arr = array();
while(($filesop = fgets($handle)) !== false)
{
$line_arr = explode(" ", $filesop);
$value = end($line_arr);
unset($line_arr[array_search($value, $line_arr)]);
$key = implode(" ", $line_arr);
$result_arr[trim($key] = trim($value);
}
print_r($result_arr);
商店在这样的文本文件(用逗号隔开):
ABANO TERME,A001
ABBADIA CERRETO,A004
ABBADIA LARIANA,A005
ABBADIA SAN SALVATORE,A006
ABBASANTA,A007
ABBATEGGIO,A008
ABBIATEGRASSO,A010
解决方案来读取文件:
$handle = fopen(path\to\file\filename, "r");
$result_arr = array();
while(($filesop = fgets($handle)) !== false)
{
$line_arr = explode(",", $filesop);
$value = end($line_arr);
unset($line_arr[array_search($value, $line_arr)]);
$key = implode(",", $line_arr);
$result_arr[trim($key] = trim($value);
}
print_r($result_arr);
对于该特定数据的一种解决办法是:
<?php
$data = file_get_contents('data.txt')
//use regular expressions to parse whole file at once
preg_match_all("/([^\s]+\s?[^\s]+?)\s+(.\d+)$/m", $data, $m);
//and combine results from result array ($m)
//first entry - $m[0] contains whole lines thats why I dont use it here
//second entry - $m[1] - data from first brackets is an array key
//third entry - $m[2] - is a value (both are separated by some number of spaces - \s+)
$array = array_combine($m[1], $m[2]);
print_r($array);
?>
输出:
Array
(
[ABETONE] => A012
[ABRIOLA] => A013
[ACATE] => A014
[ACCADIA] => A015
)
当然
,如上述的同事所指出的,这依赖于在数据的来源,并且如果该特定集是有代表性的。
$txt = file_get_contents('foo.txt');
$arr=array_values(array_filter(explode(' ',$txt)));
$new=[];
for($i=0; $i<count($arr)-1;$i++){
$new[$arr[$i]]=$arr[++$i];
}
print_r($new);
是。数据从哪里来,到目前为止你有什么? – jeroen
它是字符串还是什么样的数据? – Gaurav
你的意思是'$ myArr [“ABETONE”] =“A012”;'? – JustCarty