Отображение большого массива в лезвии laravel за слишком большое времяPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отображение большого массива в лезвии laravel за слишком большое время

Сообщение Anonymous »

Итак, я импортировал свой большой файл Excel с огромной информацией за 1 секунду, и я получил всю информацию, которую мне нужно отобразить, в течение 1 секунды, но у меня возникла большая проблема при отображении массива в представлении, потому что я проверяю, если ячейки верны или нет, я использую 5 ifs и 3 foreach, и это занимает чуть больше 2 минут, мне нужна помощь, чтобы отобразить всю информацию за короткое время, это мой массив, и спасибо
Изображение

Изображение

и есть мой код представления, отображение информации которого занимает слишком много времени
Изображение

и спасибо
//here we get our final result of true and false fields
$finale_array = [];

// here we get all our
$current_table2 = [];
$results_applied = [];
$current_result = [];
$columns = SCHEMA::getColumnListing('imports');

// here we get all our conditions
$conditions = DB::table('conditions')->select('number', 'field', 'value')->get();

// here we get all our data
$imports = DB::table('imports')->get();

$results = DB::table('results')->get();
$x = 0;
$default_value = 0;
foreach ($imports as $key => $imported) {

$res = get_object_vars($imported);

foreach ($conditions as $value) {

$array = get_object_vars($value);
$result = $this->test($columns, $array['field']); // the result of our test function

if ($result == "ok") {

if ($res[$array['field']] == $array['value']) {

foreach ($results as $value_result) {

$res_resultat = get_object_vars($value_result);

$test_field = $this->test($columns, $res_resultat['field']);
// testing if the condtion numder match with the result number
if (($res_resultat['condition_number'] == $array['number'])) {

if (($test_field == 'ok')) {

if ($res['id'] != $default_value) {
// here test if the difference between the id and the default value is different from the current id to insert
if (($res['id'] - $default_value) != $res['id']) {

array_push($current_table2, $results_applied);
array_push($finale_array, $current_table2);

$current_table2 = [];
$results_applied = [];
$default_value = $res['id'];
}
$current_table2 = [$res, $res['id']];
}

$current_result = [$res_resultat['field'], $res[$res_resultat['field']]];

if ($res_resultat['value'] == $res[$res_resultat['field']]) {

$current_result[2] = 'true';
$current_result[3] = $res_resultat['value'];
} else {
$current_result[2] = 'false';
$current_result[3] = $res_resultat['value'];
}
$current_result[4] = $array['number'];
array_push($results_applied, $current_result);
}
}
}
}
}
}
$default_value = $res['id'];
}

array_push($current_table2, $results_applied);
array_push($finale_array, $current_table2);

dd($finale_array);

return view('Appliedconditions', ['imports' => $finale_array, 'columns' => $columns]);
}


Подробнее здесь: https://stackoverflow.com/questions/689 ... -much-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»