У меня есть массив как это:Как проверить перед использованием элементов массива?
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
/*
Array
(
[0] => Array
(
[id] => 191
[name] => Ali
[range] => today
)
[1] => Array
(
[id] => 190
[name] => John
[range] => today
)
[2] => Array
(
[id] => 189
[name] => peter
[range] => in last week
)
[3] => Array
(
[id] => 180
[name] => Ali
[range] => in last week
)
[4] => Array
(
[id] => 170
[name] => Jack
[range] => in last week
)
)
*/
И я пытаюсь сделать HTML динамически, как это:
<div id = "notification_box">
<div class= "cases">
<div class="title">today</div>
<table>
<tr>
<td>191</td>
<td>Ali</td>
</tr>
<tr>
<td>190</td>
<td>John</td>
</tr>
</table>
</div>
<div class= "cases">
<div class="title">yesterday</div>
</div>
<div class= "cases">
<div class="title">in last week</div>
<table>
<tr>
<td>189</td>
<td>Peter</td>
</tr>
<tr>
<td>180</td>
<td>Ali</td>
</tr>
<tr>
<td>170</td>
<td>Jack</td>
</tr>
</table>
</div>
</div>
Вот мой код:
$html = '';
$last_item_range = '';
foreach ($results as $key => $item)
{
$next_item = (is_array($results[$key+1])) ? $results[$key+1] : null;
if ($item['range'] != $last_item_range)
{
$html .= '<div class="cases">';
$html .= sprintf('<div class="title">%s</div>', $item['range']);
$html .= '<table>';
$last_item_range = $item['range'];
}
$html .= '<tr>';
foreach($item as $value){ $html .= sprintf('<td>%s</td>', $value); }
$html .= '</tr>';
if ($next_item['range'] != $item['range'])
{
$html .= '</table>';
$html .= '</div>';
}
}
echo $html;
Но эта линия $results[$key+1]
выдает это уведомление:
Примечание: Не определено смещение
Как я могу это исправить?
Также, пожалуйста, скажите мне, что я правильно это сделал? Или есть лучший алгоритм для создания этого HTML?
Возможно, с помощью 'Исеть ($ результаты [$ ключ + 1]', а не 'is_array ($ результаты [$ ключ + 1] ' –
@MarkBaker Хорошо сыграл .. Просто вы также можете сказать мне, что я делаю это правильно? Или я должен делать это другим способом? –
Я уверен, что есть лучший способ установить количество столбцов в чистый css, но я не эксперт в css –