Мне нужно найти минимальное и максимальное значения всех столбцов в CSV и использовать эти значения для моего слайдера на моей веб-странице. Первоначально я определяю полные столбцы в файле CSV и на основе полных столбцов, я создаю много слайдеров (например, слайдер цены amazon). Это часть кода для создания ползунков.
<?php for ( $i = 1; $i < $totalcolumns; $i++ ) { echo '<input type="text" data-slider="true" data-slider-range="1,500" data-slider-step="1"/>'; } ?>
В приведенном выше фрагменте кода диапазон ползунков данных задан как 1500 . Однако мне нужно определить эти значения на основе минимальных и максимальных значений столбцов CSV . Если я заранее знаю свои полные столбцы, я могу определить минимальные и максимальные значения всех столбцов, как описано в этой ссылке.
Предположим, если в моем CSV-файле 5 столбцов, мне нужно включить 5 слайдеров и найти минимум и максимум для всех 5 столбцов и использовать их в качестве диапазона ползунков данных в приведенном выше коде.
Может ли кто-нибудь, пожалуйста, направить меня правильно? Я не уверен, что это должно быть сделано на PHP или javascript, как совершенно новое для этих технологий.
РЕДАКТИРОВАТЬ:
Чтобы найти полные столбцы, я использую другой файл PHP, в котором я использую приведенный ниже код.
$handle = fopen('demo.csv', 'r'); if (($data = fgetcsv($handle, 1000, ',')) !== false) { }
И затем, я использую SESSION, чтобы передать счет ($ data) в мой текущий файл PHP.
$_SESSION["totalcolumns"] = count($data);
В моем текущем файле PHP я просматриваю полные столбцы в моем CSV-файле, как показано ниже.
$totalcolumns = $_SESSION["totalcolumns"];
Вам нужно изменить фрагмент кода, в котором вы получите $totalcolumns
:
$data = []; $total_columns = 0; $handle = fopen('data.csv', 'r'); while (false !== ($row = fgetcsv($handle, 1000, ','))) { 0 === $total_columns and $total_columns = count($row); $i = 0; while (++$i <= $total_columns) { $data[$i][] = (int) $row[$i - 1]; } } $i = 0; while (++$i <= $total_columns) { $_SESSION["min-column-$i"] = min($data[$i]); $_SESSION["max-column-$i"] = max($data[$i]); } $_SESSION['totalcolumns'] = $total_columns; fclose($handle);
Для таких data.csv :
3,4,5,6,7 10,8,1,8,8 3,6,7,8,2
вы будете иметь эти значения $_SESSION
:
var_dump($_SESSION); array(11) { 'min-column-1' => int(3) 'max-column-1' => int(10) 'min-column-2' => int(4) 'max-column-2' => int(8) 'min-column-3' => int(1) 'max-column-3' => int(7) 'min-column-4' => int(6) 'max-column-4' => int(8) 'min-column-5' => int(2) 'max-column-5' => int(8) 'totalcolumns' => int(5) }
Затем вы сможете использовать значения диапазона, например:
$i = 0; while (++$i <= $_SESSION['totalcolumns']) { $range = $_SESSION["min-column-$i"] . ',' . $_SESSION["max-column-$i"]; echo '<input type="text" data-slider="true" data-slider-range="', $range, '" data-slider-step="1"/>'; }