0
votes

Diviser une chaîne 2 fois et le mettre dans une table

OK, j'ai une chaîne qui doit être divisée 2 fois. Première fois par des espaces hâte et la deuxième fois par des virgules. Donc, je peux le mettre dans une table.

J'ai réussi à scinder la ficelle par des espaces blancs et je l'ai placée dans la première colonne de la table, mais j'ai du mal à le diviser pour la deuxième fois et de mettre les valeurs dans la colonne de droite.

Ici, les extraits de ce que j'ai déjà obtenu: xxx


2 commentaires

Ok ... et vous supposez que nous savons quelle est votre question ou votre problème? Et qu'est-ce que splitsringbywhiteespace fait? Nous pouvons deviner, mais ce serait bien de savoir.


@Andreas mon mauvais .. je me suis précipité un peu. Il est mis à jour


3 Réponses :


1
votes

Lorsque vous rendez les rangées de table, vous devriez diviser chaque volume par virgule. Je ne comprends pas exactement toutes les lignes récupérées ou quelle est la logique derrière votre code, mais ce groupe de code doit faire ce dont vous avez besoin:

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


0 commentaires

1
votes

Êtes-vous sûr que la chaîne que vous avez fournie est exacte? Je pense qu'il y a un coma manquant entre la taille de SystemReserved et l'étiquette du lecteur suivant. Si c'est le cas - le code devrait être quelque chose comme ceci: Nous sommes d'abord "exploser" la chaîne pour créer un tableau, puis utiliser le chunk de matrice pour la diviser en tableaux avec sept entrées chacune. Puis rendu:

$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>


1 commentaires

Merci pour votre réponse! Comment j'ai compris Array_chunk, je ne peux pas l'utiliser à cause du paramètre de taille. J'en ai besoin pour être dynamique. La réponse de Matei Mihai est exactement ce dont j'avais besoin.



0
votes

Vous pouvez échapper à la boucle intérieure de pourach à l'aide de implorez code>. xxx pré>

ou même remplacer des virgules avec td> code> Travaillera également: P>

$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>';
}


0 commentaires