У меня есть страница, которая показывает данные из базы данных, в которой есть несериализованные данные. Несериализованные данные выглядят так:
array (
'text-name' => 'test',
'email' => 'test@gmail.com',
'text-company' => 'test',
'tel-number' => '978456132',
'products' =>
array (
0 => 'Domains',
1 => 'Weebly',
),
'menu-country' => 'Austria',
'number' => '1001 - 10,000',
'text-current-registrar' => '5',
'notes' => 'test',
'text-current-url' => 'https://www.foo.com/boo-foo/',
'text-previous-url' => 'https://www.foo.com/boo-foo/',
'text-utm_source' => '',
'text-utm_medium' => '',
'text-utm_campaign' => '',
'gdpr-b' =>
array (
0 => 'I',
),
'gdpr-c' =>
array (
0 => 'I',
),
'gdpr-d' => NULL,
'gdpr-e' => NULL,
)
данные в БД имеют следующий формат: 'a:18:{s:9:"text-name";s:4:"test";s:5:"email";s:14:"test@gmail.com";s:12:"text-company";s:4:"test";s:10:"tel-number";s:9:"978456132";s:8:"products";a:2:{i:0;s:7:"Domains";i:1;s:6:"Weebly";}s:12:"menu-country";s:7:"Austria";s:6:"number";s:13:"1001 - 10,000";s:22:"text-current-registrar";s:1:"5";s:5:"notes";s:4:"test";s:16:"text-current-url";s:59:"https://www.bla.com/foo-bar/";s:17:"text-previous-url";s:59:"https://www.bla.com/foo-bar/";s:15:"text-utm_source";s:0:"";s:15:"text-utm_medium";s:0:"";s:17:"text-utm_campaign";s:0:"";s:6:"gdpr-b";a:1:{i:0;s:1:"I";}s:6:"gdpr-c";a:1:{i:0;s:1:"I";}s:6:"gdpr-d";N;s:6:"gdpr-e";N;}'
код php для отображения выглядит следующим образом:
<?php
$no = 1;
while ($row = mysqli_fetch_array($query))
{
echo '<tr>';
echo '<td>'.$no.'</td>';
echo '<td>'.$row['form'].'</td>';
$formdata = unserialize($row['data']);
foreach ($formdata as $key => $fdata)
{
if( sizeof($fdata) !=1 )
{
if (is_array($fdata)) {
$fsofdata = array_map('unserialize', $fdata);
foreach ($fsofdata as $prod => $prodvalue)
{
if ( ($prod === 'gdpr-b') || ($prod === 'gdpr-c') || ($prod === 'gdpr-d') || ($prod === 'gdpr-d') ) {
foreach ($prodvalue as $pprod => $pprodvalue)
{
echo '<td>'.$pprod.''.($pprodvalue).'</td>';
}
}
else {
echo '<td>'.($prodvalue).'</td>';
}
}
}
else {
echo '<td>'.($fdata).'<td/>';
}
}
else {
echo '<td>'.($fdata).'<td/>';
}
}
echo '<td>'.$row['date']. '</td>';
echo '</tr>';
$no++;
}
?>
Проблема здесь в том, что данные, которые присутствуют внутри массива продуктов и переменных gdpr-b, gdpr-c, отображаются в виде массива. Я пытался использовать array_map для данных, но это тоже не помогло, как отобразить значения в массив в таблице.