将.dict转换为数组

时间:2012-07-26 02:37:47

标签: php arrays dictionary

如何转换.dict文件中的条目,如:

aveu
    acknowledgement, admission

到像

这样的php数组
  

$ array ['aveu'] = array(1 =>'确认',2 =>'允许');

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

假设父节点之前没有空格,并且子节点以空格开头以逗号分隔,则循环遍历文件中的行。如果前面没有空格(通过preg_match()),则启动一个新的数组键,然后explode()后续的空白行。

$output = array();
$lines = file('yourfile.dict');
foreach ($lines as $line) {
  // Skip blank lines
  if (strlen(trim($line)) > 0) {
    // No leading whitespace, start a new key:
    if (!preg_match('/^\s+/', $line)) {
      $key = trim($line);
      $output[$key] = array();
    }
    // Otherwise, explode and add to the previous $key (if $key is non-empty)
    else if (!empty($key)) {
      $terms = explode(",", $line);
      // Trim off whitespace
      $terms = array_map('trim', $terms);
      // Merge them onto the existing key (if multiple lines)
      $output[$key] = array_merge($output[$key], $terms);
    }
    else {
      // Error - no current $key
      echo "??? We don't have an active key.";
    }
  }
}