Как мне отформатировать массив, который содержит папки папки (Watchfolder) в основной HTML-таблице.
Это основная функция
function dirToArray($dir) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (!in_array($value,array(".","..")))
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$result[$value] = $this->dirToArray($dir . DIRECTORY_SEPARATOR . $value);
}
else
{
$result[] = $value;
}
}
}
return $result;
}
Я называю это так;
$watchFolderPath = 'C:\\xampp\\htdocs\\mop\\Rp\\';
$watchFolder = $this->dirToArray($watchFolderPath);
если я print_r это, это дает мне правильные значения, в этом случае папки с его подпапкой.
Выглядит так:
array:6 [▼
345 => array:2 [▶]
789 => array:2 [▶]
"folder1" => array:2 [▶]
"folder2" => array:2 [▶]
"folder3" => array:2 [▶]
"folder4" => []
]
Я не знаю, как правильно отформатировать это.
Вы можете просто echo
HTML-теги, смешанные с результатами массива:
echo "<table>";for ($row = 0; $row < count($watchFolder); $row++)
echo "<tr>";
echo "<td>" . $watchFolder[$row] . "</td>";
for ($col = 0; $col < 2; $col++) {
echo "<td>" . $watchFolder[$row][$col] . "</td>";
}
echo "</tr>";
}
echo "</table>";
Расположите стол так, как считаете нужным — <tr>
теги являются строками, <td>
теги являются элементами данных.
Редактировать:
Для обработки папок без подпапок, возможно, попробуйте что-то похожее на это внутри цикла.
if is_array($watchFolder[$row]) {
for ($col = 0; $col < 2; $col++) {
echo "<td>" . $watchFolder[$row][$col] . "</td>";
}
}
Других решений пока нет …