使用php将文本文件中的两列数据解析为键值对数组


Use php to parse two columns of data in a text file into a key value pair array

我是一个PHP新手。我有一个文本文件,有10个逗号分隔对,我需要把它们读到一个键=>值数组。

3453453453,Bill Jones 
...
...
3945845746,Joe Bob

Array
(
[3453453453] => Bill Jones 
...
...
[3945845746] => Joe Bob
)

这是我到目前为止的代码

$people = array();
foreach(file('txtdatafinal') as $line)
{
list($key, $value) = explode(',' $line, 2);
$people[$key] = $value;
}
print_r($people);

然而,即使源文件包含10行,我的代码只给出1个输出数组对,它始终是文本文件中的最后一个值。

Array
(
[3945845746] => Joe Bob
)

即使我构建两个独立的数组,这将在两个良好的索引数组中输出所有10个唯一值,并尝试使用array_combine,我仍然只能得到单个输出对。

$people = array();
foreach(file('txtdatafinal') as $line)
{
list($key, $value) = explode(',' $line, 2);
$a[] = $key;
$b[] = $value;
}
$c = array_combine($a,$b);
print_r($c);
Array
(
[3945845746] => Joe Bob
)

我的想法是循环应该是附加的,但它似乎每次都要替换它的键值对。有人能帮忙吗?

file(…)的输出是一个数组,看起来像:

Array 
(
    0 => number, name,
    1 => number, name,
    2 => number, name,
    ...
)

你必须在foreach-loop中打开$line = "number, name"

$people = array();
$lines = file("file.txt");
foreach ($lines as $i => $line) {
    $line_arr = explode(",", $line);
    $people[$line_arr[0]] = $line_arr[1];
}
print_r($people);

我想你应该是这样的:

$people = array();
$lines = file('txtdatafinal');
foreach($lines as $line)
{
    $data = explode(',' $line);
    $key = $data[0];
    $val = $data[1];
    $people[$key] = $val;
}
print_r($people);