2012-07-12 96 views
1

我無法讓這個PHP數組爲我返回任何值。 CSV表由10個數字組成。我得到的唯一的輸出是「array將php添加到php數組

$data = array(); 
if (($handle = fopen("fullbox.csv", "r")) !== FALSE) { 
    while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $data[] = $row; 
    } 
} 

echo $data[1]; 

任何幫助將不勝感激。

+0

數組返回爲$ data [1]是一個數組嘗試使用它的var_dump() – 2012-07-12 15:34:26

回答

3

您的代碼已經正確。

$data是多維數組,每個元素本身就是一個數組。當你要求PHP寫一個更復雜的數組變量的字符串表示時,PHP通過輸出array而不是其內容來處理。

而是,var_dump()它來看看它包含什麼。

echo $data[1][0]; 

編輯點評後:

它直接通過$row[0]時,如果CSV包含每行只有一個值,獲得

var_dump($data); 

單個值將可以通過類似訪問附加到輸出陣列以便將其作爲1D陣列:

if (($handle = fopen("fullbox.csv", "r")) !== FALSE) { 
    while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $data[] = $row[0]; 
    } 
} 
// $data is now a 1D array. 
var_dump($data); 
+0

@Micheal有沒有一種方法來設置數組,使其易於使用一維。因爲我在csv文件中只有一組。謝謝 – Djacksway 2012-07-12 15:42:21

+0

@Dackackway請參閱上面的內容。 – 2012-07-12 15:44:17

+0

@Micheal也許我錯過了我的CSV包含10個數字的一​​列。我只是希望能夠通過數組中相應的位置調用我想要的任何數字。我試過你以前的代碼,我沒有得到它返回任何東西。謝謝你的時間。 – Djacksway 2012-07-12 15:50:17

0

$ data [1]是$ data變量中的第二個元素($ data [0]將是第一個元素)。

您正在獲取一個數組而不是一個值,這就是爲什麼PHP會回顯數組。

這應該會更好。

$data[0][0] 

你$數據變量是一個多維數組,你只打算一個級別深度。

0

那是因爲$ data [1] CSV數組中的10個數字的數組,所以$ data現在是一個多維數組。 echo $data[1][0]將輸出其中一個數字