Разделите строку 2 раза и поместите ее в таблицу

Хорошо, у меня есть строка, которую нужно разделить 2 раза. Первый раз пробелами, второй раз запятыми. Так что я могу положить его в таблице.

Мне удалось разбить строку по пробелам и поместить ее в первый столбец таблицы, но я изо всех сил пытаюсь разбить ее во второй раз и поместить значения в правильный столбец.

Вот фрагменты того, что я уже получил:

<?php for ($i = 0; $i < sizeof($volumes); $i++) {
    echo "<tr><td>" . $volumes[$i] . "</td></tr>";
} ?>

Хорошо... И вы предполагаете, что мы знаем, в чем заключается ваш вопрос или проблема? А что делает splitStringByWhitespace? Мы можем догадываться, но было бы неплохо знать.

Andreas 11.02.2019 13:04

@Андреас, мой плохой .. я немного поторопился. Он обновлен

Donut 11.02.2019 13:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
68
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Когда вы визуализируете строки таблицы, вы должны разделить каждый том запятой. Я не совсем понимаю все извлеченные строки или какова логика вашего кода, но этот набор кода должен делать то, что вам нужно:

<?php 
    for ($i = 0; $i < sizeof($volumes); $i++) {
        echo '<tr>';
        $volumeData = explode(',', $volumes[$i]);
        foreach ($volumeData as $volume) {
            echo '<td>' . $volume . '</td>';
        }
        echo '</tr>';
    }
?>

Вы уверены, что введенная вами строка верна? Я думаю, что между размером SystemReserved и меткой следующего диска отсутствует запятая. Если это так - код должен быть примерно таким: Сначала мы «разбиваем» строку, чтобы создать массив, затем используем фрагмент массива, чтобы разбить его на массивы с семью элементами в каждом. И затем визуализируйте это:

$string = 'L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 ,C,LocalDisk,NTFS,Healthy,OK,18.19,29.74';
$array = explode(',', $string);
$results = array_chunk($array, 7, true);

?>

<table id = "tbl_basic_volumes">
    <tr>
        <th>Buchstabe:</th>
        <th>Name:</th>
        <th>Filesystem:</th>
        <th>Health Status:</th>
        <th>Operational Status:</th>
        <th>Freier Speicherplatz:</th>
        <th>Gesamter Speicherplatz:</th>
    </tr>
    <?php
        foreach ($results as $result) {
            echo '<tr>';
            foreach ($result as $entry) {
                echo '<td>'.$entry.'</td>';
            }
            echo '</tr>';
        }
    ?>
</table>

Спасибо за Ваш ответ! Как я понял array_chunk, я не могу его использовать из-за параметра размера. Мне нужно, чтобы это было динамично. Ответ Матея Михая - это именно то, что мне нужно.

Donut 11.02.2019 13:33

Вы можете выйти из внутреннего цикла foreach, используя implode.

$str = "L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 C,LocalDisk,NTFS,Healthy,OK,18.19,29.74";
$rows = explode(' ', $str);
foreach ($rows as $row) {
  echo '<tr><td>' . implode('</td><td>', explode(',', $row)) . '</td></tr>';
}

Или даже замена запятых на </td><td> также будет работать:

$str = "L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 C,LocalDisk,NTFS,Healthy,OK,18.19,29.74";
$rows = explode(' ', $str);
foreach ($rows as $row) {
  echo '<tr><td>' . str_replace(',', '</td><td>', $row) . '</td></tr>';
}

Другие вопросы по теме