2012-11-24 66 views
2
Array ([0] => Array ([No.,"Ticker","Company"] => 
         1,"A","Agilent Technologies Inc.") 
     [1] => Array ([No.,"Ticker","Company" ] => 
         2,"AA","Alcoa, Inc.") 
    ) 

這是我輸入print_r($ arrayOne)時的輸出; 我該怎麼做,我只能得到公司專欄,即安捷倫科技公司和Alocoa公司。PHP獲取陣列中特定列的所有值

我試過echo $ arrayOne ['Company']和$ arrayOne [0] ['Company']但它剛剛輸出'陣列'。

+0

是它是因爲數組內的數組? – ealeon

+0

不,這是因爲這些陣列中沒有任何公司的密鑰。 – DCoder

+0

你甚至構建了這種類型的數組?以前從未見過。 – Zim84

回答

3

你有什麼是有兩個子數組,每個只有一個值的外部數組。它的關鍵是3列的描述,其值是CSV值。如果你有PHP 5.3,使用str_getcsv()分析它,並返回第三列

// Loop over the outer array 
foreach ($arrayOne as $subarr) { 
    // Loop over the sub-arrays (though your sample only has one value each) 
    // could also use array_pop() 
    foreach ($subarr as $key => $csvstring) { 
    // $csvstring holds the CSV value like '1,"A","Agilent Technologies Inc."' 
    // Parse it with str_getcsv() 
    $cols = str_getcsv($csvstring); 
    // Company name is the 3rd value, key [2] 
    echo $cols[2] . "\n"; 
    } 
} 

例如與輸入:

$arrayOne = array(
    array('No.,"Ticker","Company"' => '1,"A","Agilent Technologies Inc."'), 
    array('No.,"Ticker","Company"' => '2,"AA","Alcoa, Inc."') 
); 
// The above loop prints: 
Agilent Technologies Inc. 
Alcoa, Inc. 
+0

這絕對是正確的方法(+1),我仍然想知道爲什麼這個語句'echo $ arrayOne [0] ['Company']'導致了'Array'(正如問題中提到的那樣)。 – raina77ow

+0

@ raina77ow我想我現在有它... –

+0

so $ csv = file_get_contents('finviz.csv'); ? – ealeon

0

你的陣列應該是這樣的:

$arrayOne = array(array('no' => 1, 'ticker' => 'A', 'company' => 'Agilent Technologies Inc.'), 
        array('no' => 2, 'ticker' => 'AA', 'company' => 'Alcoa Inc.')); 

echo $array[0]['company']; // will print Agilent Technologies