php - 将定界字符串转换为关联数组

标签 php arrays explode csv

我有一个包含这样记录的文件 codes.txt

USA 0233
JPN 6789
TUN 8990
CDN 2345

我想将文件的这些内容读取到这样的关联数组中。

$codes["USA"] = 0233;
$codes["JPN"] = 6789;
$codes["TUN"] = 8990;
$codes["CDN"] = 2345;

这是打开文件进行写入的代码。我需要数组部分的帮助。谢谢

$myFile = "codes.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh)

最佳答案

这很简单。首先逐行阅读文件(例如,请参阅已经执行此操作的 file 函数)。然后通过在第一个空格处拆分来解析每一行(参见 explode ),使用第一部分作为键,第二部分作为值:

$array = array();
foreach (file($myFile) as $line)
{
    list($key, $value) = explode(' ', $line, 2) + array(NULL, NULL);

    if ($value !== NULL)
    {
        $array[$key] = $value;
    }
}

如果您的解析器需要更具体,请根据您的需要进行更改。 a lot of string functions with PHP 可用于更差异化的解析,例如 sscanf正则表达式

另一种常用方法是从 SplFileObject 扩展,它允许将数据获取封装在迭代器中,这样您就可以更好地区分数据的使用位置和获取位置。您可以在另一个答案中找到示例:

关于php - 将定界字符串转换为关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259640/

相关文章:

php - 带 explode 的多选 : only returns the word "Array"

php - mysql 查询 union 和 mysql_num_rows

php - HipHop编译器无法识别对象$ this变量

php - 订单历史通知

C – 初始化包含多个数组的二维全局静态结构数组

arrays - 如何为字符串数组添加下标

php - 哪种方式加载MySQL数据库比较好?

javascript - 如何将数组导入到javascript中的函数中?

PHP 等同于 JavaScript 中的列表和 explode

PHP - 删除部分字符串?