2014-01-19 49 views
0

我正在從輸入文件讀取一行並將其傳遞給數組。將值以自定義格式傳遞給數組

我輸入文件只包含一個行:1假的2,3-

,其中1 =頂點,假=走訪,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))) 

是有什麼辦法可以得到相同的結果?

+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") 
} 
+0

我的天啊!現在我必須關閉我的編輯器,因爲上帝將我的代碼複製到someelse的心中..... –

+0

感謝您的快速反應Huseyin.The答案是非常清楚,但現在我堅持的情況下,當文件中會有多行。我如何將每行以相同的方式傳遞給數組? –

+0

我爲此添加了代碼 –

相關問題