2014-09-03 66 views
1

我有幾個數組存儲在一個變量中。我的變量保存這些數組:顯示第一個和第三個值foreach數組

Array ([0] => firstname [1] => lastname [2] => email [3] => phone) 
Array ([0] => Benny [1] => Mose [2] => [email protected] [3] => 12345678) 
Array ([0] => Luke [1] => Skywalker [2] => [email protected] [3] => 10000000) 
Array ([0] => Master [1] => Yoda [2] => [email protected] [3] => 13370002) 
Array ([0] => Ben [1] => Kenobi [2] => [email protected] [3] => 13370004) 
Array ([0] => Darth [1] => Bandon [2] => [email protected] [3] => 55554444) 
Array ([0] => C-3PO [1] => Robot [2] => [email protected] [3] => 33339999) 
Array ([0] => R2D2 [1] => Robot [2] => [email protected] [3] => 44447777) 
Array ([0] => Han [1] => Solo [2] => [email protected] [3] => 99998888) 
Array ([0] => Jar jar [1] => Binks [2] => [email protected] [3] => 111112222) 

我想顯示每個數組的第一個[0]和第三[2]值。

我能夠通過顯示每個數組的第一個值:

$CSVfp = fopen("csv-list.csv", "r"); 
if($CSVfp !== FALSE) { 
while(! feof($CSVfp)) { 
    $data = fgetcsv($CSVfp); 

echo '<hr>'; 
foreach($data as $arr) 
{ 
    echo $data[0].' '.$data[1].', '.$data[2].'<br>'; // first element 

} 

} 
} 
fclose($CSVfp); 

但我無法弄清楚如何同時顯示第一和第三值。

回答

1

一個簡單的foreach循環應該做的伎倆:

foreach($data as $arr) 
{ 
    echo $arr[0]."\r\n"; // first element 
    echo $arr[2]."\r\n"; // third element. 
} 

在foreach循環,你把每一個元素(在你的情況,我已經是一個數組),並可以使用它作爲不管它是什麼。

Array ([0] => firstname [1] => lastname [2] => email [3] => phone) 

所以你顯示的元素爲正常:

因此,在第一循環中,$arr可以爲可見。

你可以做第二個foreach循環,如果你想在幾十個元素的數組,以顯示每第二個元素,或搜索特定元素或什麼:

foreach($data as $arr) 
{ 
    foreach($arr as $key=>$val) 
    { 
     echo ($key=='someElement')?$val:""; 
    } 
} 

編輯:基於您的評論中,變量實際上並不包含你在問題中顯示的(所有)數組,而是一次僅包含其中的一個。

此基礎上,你可以簡單地訪問數組中的每個元素:

echo $data[0]."\r\n"; // first element 
echo $data[2]."\r\n"; // third element. 

編輯2:

$CSVfp = fopen("csv-list.csv", "r"); 
if($CSVfp !== FALSE) 
{ 
    while(! feof($CSVfp)) 
    { 
     $data = fgetcsv($CSVfp); 
     echo '<hr>'; 
     echo $data[0].' '.$data[1].', '.$data[2].'<br>'; // first element 
    } 
} 
fclose($CSVfp); 

你不需要在foreach的話 - 你已經訪問每個行作爲單個簡單數組。

編輯3:

您可以使用一個簡單的計數器和模函數:

$i=0; 
$CSVfp = fopen("csv-list.csv", "r"); 
if($CSVfp !== FALSE) 
{ 
    while(! feof($CSVfp)) 
    { 
     $i++; 
     $data = fgetcsv($CSVfp); 
     if($i%3==0) 
     { 
      echo '<hr>'; 
      echo $data[0].' '.$data[1].', '.$data[2].'<br>'; // first element 
     } 
    } 
} 
fclose($CSVfp); 
+0

按照你的意見,我使用的是簡單的foreach循環嘗試。但它顯示每個值的第一個和第三個字符。例如。 firstname = fr等等。 – 2014-09-03 10:29:55

+1

@KarstenTietje請參閱編輯。 – Fluffeh 2014-09-03 10:36:42

+0

謝謝你是對的。但是現在每個條目都顯示4次。例如。名字名字名字名字 - 那真的沒有意義。 – 2014-09-03 10:42:05

相關問題