是否有可能在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