2016-08-01 2 views
0

Я FILE.CSV так:значение Достаньте из массива многомерные

Name , Gender , Age //header 
John , M  , 22 
Jack , M  , 20 

Я прочитал его и хранить в массиве, так что я стараюсь это:

$fileName = "file.csv"; 
$array = array_map('str_getcsv', file('file.csv')); 

И это дало мне массив, как это :

Array [0] => 
       Array ([0] => Name [1] => Gender [2] => Age) 
     [1]=> 
       Array ([0] => John [1] => M  [2] => 22) 
     [2]=> 
       Array ([0] => Jack [1] => M  [2] => 20) 

Это так просто, но им жаль, что я не знаю, как: '( я хочу получить только значение Возраст от каждого р erson (не включать заголовок) для параметров в моей функции countAge ($ age). Как я могу это сделать?

ответ

0

Вы можете удалить первый элемент массива с array_shift(), а затем итерацию с Еогеасп, как это:

array_shift($array); 

foreach($array as $a) 
{ 
    if (isset($a[2])) 
    { 
     $age = $a[2]; // $a[2] has the age value 
     echo "Age: " . $age; 
    } 
} 

или вы можете итерация через массив с петлей для петли, начиная со второго элемента:

for($i = 1 ; $i < count($array) ; $i++) 
{ 
    if (isset($array[$i][ 2 ])) 
    { 
     $age = $array[$i][2]; 
     echo "Age: " . $age; 
    } 
} 
+0

он работает, но как-то, в середине процесса, Im получает ошибку msg «undefined offset 2» – jill182

+0

@ jill182 Похоже, что в вашем файле csv есть строки без возрастного значения. Вы можете проверить это? – tyb

+0

Убедитесь, что все строки имеют возрастное значение. На самом деле у меня есть 200 строк, но когда я подсчитываю массив, он содержит 200 ++. Может быть, что-то не так, когда я конвертирую csv в массив? – jill182

0

Если я понял ваш вопрос правильно, это должно сделать это:

for($i = 1; $i < sizeof($array); $i++) { 
    if(isset($array[$i][2])) { 
    $age = $array[$i][2]; 
    // Further use $age as you need it. 
    } 
} 
+0

it works bu t как-то, в середине процесса, Im получение ошибки msg "undefined offset 2" – jill182

+0

Возможно, у вас нет определенного возраста для некоторых людей. Я уточню свой ответ, чтобы проверить, установлен ли возраст. – sticksu

Смежные вопросы