Лучшая практика в Datatables - вместо того, чтобы приводить ваши данные с foreach, вы должны попробовать datatables, встроенные в ajax.Я столкнулся с той же проблемой и решил ее, превратив свою форму данных в json с помощью ajax-вызова.
PHP JSON Encode;
$object = (object) $arr;
echo json_encode($object);
Форма Datatables Ajax;
var table = $('#example').DataTable({
fixedHeader: true,
"initComplete": function(){
$('.ui.loader').remove();
)
},
ajax: {
url: 'api/yourhandler.php',
type: 'GET',
data: {
searchTerm:searchTerm,
'pane':paneno,
project: projectFilter
},
},
order: [[ 0, "desc" ], [ 5, "asc" ]],
columnDefs: [
{ "searchable": true, "targets": [0,1,2,3,4,5] },
{ "className": "align-center", "targets": [0,2,3,4,5,6,7,8,9] },
{ "width": "1%", "targets": [2,3,4,5,6,7] },
{ "width": "10%", "targets": [8] },
{ "width": "25%", "targets": [1,9] }
],
columns: [
{ data: "columndata1" },
{ data: "columndata2" },
{ data: "columndata3" },
{ data: "columndata4" }
],
responsive: true,
paging: true,
pageLength: 25
});
Если вы решите не создавать AJAX, я могу сказать, что причиной вашей проблемы являются ваши данныене подходит к столу.Попытайтесь сфокусировать свой foreach, вы увидите проблему.