Требуется переработать код для отчёта(canvas) [закрыт]

109
28 ноября 2020, 14:20
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад.

Улучшить вопрос

есть ресурс https://canvasjs.com/php-charts/stacked-column-100-chart/

Там можно менять данные я поставил заводы по производству пластиковых труб Пример code.re/2FKqG1p6

Есть задача автоматизации в плане чтоб руками не забивать в типичные array данные, предположил что можно сделать массив

$data=array('Завод 1'=>array('Пластиковая труба ф10'=>'100 шт', 'Пластиковая труба ф20'=>'120 шт','Пластиковая труба ф30'=>'150 шт', 'Пластиковая труба ф40'=>'110 шт', 'Пластиковая труба ф50'=>'160 шт', 'Платиковая труба ф60'=>'90 шт', 'Пластиковая труба ф70'=>'115 шт' ),
'Завод 2'=>array('Пластиковая труба ф10'=>'105 шт', 'Пластиковая труба ф20'=>'125 шт','Пластиковая труба ф30'=>'155 шт', 'Пластиковая труба ф40'=>'115 шт', 'Пластиковая труба ф50'=>'165 шт', 'Пластиковая труба ф60'=>'95 шт', 'Пластиковая труба ф70'=>'120 шт' ),
'Завод 3'=>array('Пластиковая труба ф10'=>'110 шт', 'Пластиковая труба ф20'=>'130 шт','Пластиковая труба ф30'=>'160 шт', 'Пластиковая труба ф40'=>'120 шт', 'Пластиковая труба ф50'=>'170 шт', 'Пластиковая труба ф60'=>'100 шт', 'Пластиковая труба ф70'=>'125 шт' ),
'Завод 4'=>array('Пластиковая труба ф10'=>'115 шт', 'Пластиковая труба ф20'=>'135 шт','Пластиковая труба ф30'=>'165 шт', 'Пластиковая труба ф40'=>'125 шт', 'Пластиковая труба ф50'=>'175 шт', 'Пластиковая труба ф60'=>'105 шт', 'Пластиковая труба ф70'=>'130 шт' ));

И его уже как то через foreach разложить. В идеале можно будет брать из mysql данные, но пока хочу просто взять массив и его уже делать в отчёт. Помогите с кодом. Заранее благодарен!

Answer 1

Для генерации фейковых данных в php можно воспользоваться тремя функциями:

  • range($start, $end, $step) - создает массив от $start до $end с шагом $step;
  • mt_rand($min, $max) - генерирует случайное значение от $min до $max;
  • array_rand($array, $num) - выбирает $num случайных ключей из массива.

Конкретный пример для вашего случая:

$data = [];
// Заводы.
$plants = range(1, mt_rand(8, 12));
// Диаметры труб.
$diamPipes = range(10, 70, 10);
// Количество труб.
$countPipes = range(0, 150);
// Строим заводы.
foreach($plants as $plant) {
  // Производим трубы.
  foreach($diamPipes as $dia) {
    $data["Завод $plant"]["Платиковая труба ф$dia"] = $countPipes[array_rand($countPipes)].' шт';
  }
}
echo '<pre>';
print_r($data);

Либо воспользоваться библиотекой Faker.

READ ALSO
PHP - способы объявления функции

PHP - способы объявления функции

В PHP всегда объявлял функции вот так:

139
Реализовать связанный select опций

Реализовать связанный select опций

На входе имеется строка типа:

121
laravel controller синтаксис ,

laravel controller синтаксис ,

как правильно написать что при каждом цикле получить последовательную цифру типа

115
Как создать генератор токена из данных по определённому шаблону

Как создать генератор токена из данных по определённому шаблону

Есть входные данные типа логин, пароль и тд

123