以自定义格式将值传递给数组

时间:2014-01-19 19:15:05

标签: php

我正在从输入文件中读取一行并将其传递给数组。

我的输入文件只包含一行: 1 false A 2,3

其中1 =顶点,false =已访问,A =字母,2,3 =邻居

我使用下面的代码将行传递给数组..

$data = array(
        1 => array($lines[2]));

我得到以下结果:

Array ( [1] => Array ( [0] => 1 false A 2,3 ) )

每件事情都很完美,我现在唯一想要的就是将每个值分配给一个属性,例如1应该分配给顶点等等......

示例:

Array ( [1] => Array ( [vertex] => 1 [visited] => [letter] => A [neighbours] => Array ( [0] => 2 [1] => 3 ) ) )

有没有办法得到相同的结果?

1 个答案:

答案 0 :(得分:3)

您可以使用下面的explode()执行此操作;

<?php

$values = explode(" ", $lines[2]);

$inputArr = array(
    'vertex' => $values[0],
    'visited' => $values[1],
    'letter' => $values[2],
    'neighbours' => explode(",", $values[3])
);

修改:如果您想使用多行,则可以使用;

<?php
$inputsArr = array();


$handle = fopen("your_file.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $values = explode(" ", line);

        $inputArr = array(
            'vertex' => $values[0],
            'visited' => $values[1],
            'letter' => $values[2],
            'neighbours' => explode(",", $values[3]
        );

        array_push($inputsArr, $inputArr);
    }
} else {
    die("Error occured while opening file")
}