macos — управление данными из файла CVS в переполнении стека

хорошо, я сейчас немного застрял.

В качестве задачи, которую мне дали, я должен сделать «звездный процессор» из данных, поступающих из файла cvs. Вот мой файл cvs

    Number,Character,Order

5,*,0
4,*,1
3,*,2
2,*,3
1,*,4
2,*,5
3,*,6
4,*,7
5,-,8

Что я пытаюсь вывести —

    *****
****
***
**
*
**
***
****
-----

Надеюсь, вы поняли идею

Вот что у меня есть сейчас —

    $starsFile = fopen("stars.csv", "r");while (!feof($starsFile)) {
print_r (fgetcsv($starsFile, ","));
}fclose($starsFile);

это в основном просто возвращает данные CSV в массивах, что круто!

Я застрял в том, чтобы выяснить, как получить доступ к массиву, который создает fgetcsv? Есть ли другая структура данных, которую я могу использовать? и помощь или указатели будут оценены!

1

Решение

if (($starsFile = fopen("stars.csv", "r")) !== FALSE) {
while (($data = fgetcsv($starsFile, 1000, ",")) !== FALSE) {
// no. of times the symbol needs to be displayed
$num_symbol_display = (int)$data[0];
// the symbol to be displayed
$symbol = $data[1];

// logic to display the symbol
for ($i=1; $i<=$num_symbol_display; $i++){
echo $symbol;
}
echo "<br>";
}
fclose($starsFile);
}

Из исходного вопроса не ясно, что должно делать 3-е поле.

1

Другие решения

Попытайся:

$starsFile = fopen("stars.csv", "r");

while (!feof($starsFile)) {
$stars = fgetcsv($starsFile, ",");
print str_repeat($stars[1], intval($stars[0]))."\n";
}

fclose($starsFile);
2

По вопросам рекламы [email protected]