создать div из каждого элемента в столбце тегов

0

Столбец моих tags выглядит так:

первая строка: sky - earth - sea

второй ряд: iron - silver - gold

третий ряд: apple - fruit - food... и так далее

Хотите создать div из каждого элемента, например:

<div class='tagdown'>sky</div> <div class='tagdown'>earth</div>

$st = $db->query("select tags from posts");
$arr = array();
$items = "";
while ($row = $st->fetch()) {
    array_push($arr, explode(' - ', $row['tags']));
}
foreach($arr as $item) {
    $items .= "<div class='tagdown'>" . $item . "</div>\n";
}

echo $items;

Примечание. Array to string conversion...

Другой пример:

for ($i = 0; $i < count($arr); ++$i) {
    $items .= "<div class='tagdown'>" . $arr[$i] . "</div>\n";
}

echo $items;

Примечание. Array to string conversion...

Любая помощь?

Теги:
arrays

4 ответа

1
Лучший ответ

Не нажимайте и снова переходите к массиву. просто распечатайте данные во время цикла. Попробуйте следующий код:

$items = "";
while ($row = $st->fetch()) {
    $arr = explode(' - ', $row['tags']);
    $items .= "<div class='tagdown'>".implode("</div>\n<div class='tagdown'>",$arr)."</div>\n";
}
echo $items;
  • 0
    Я попытался, и результат выглядит так: `<div class = 'tagdown'> небо - земля - море </ div> '. Таким образом, предметы не разбиваются на отдельные деления.
  • 0
    ты покажешь свой обновленный код?
Показать ещё 5 комментариев
1

explode() возвращает массив, и вы нажимаете массив на другой массив, создавая 1 2D-массив, который вы можете проверить, используя print_r($arr); использовать этот

while ($row = $st->fetch()) {
   $tag=explode('-', $row['tags'];
   foreach($tag as $t){
     array_push($arr,$t ));
   }

}
1

Попробуйте, как показано ниже

Пример :

<?php
$items = "";
$str = "sky-earth-sea";
$arr = explode("-", $str);
$count = count($arr);
for($i = 0; $i < $count; $i++) {
    $items .= "<div class='tagdown'>".$arr[$i]."</div></br>";
}
echo $items;
?>
  • 0
    У меня есть массив ваших переменных $str .
0

Вы также можете использовать ассоциацию fetch при использовании mysqli_connect

    while ($row = $result->fetch_assoc()) {
        array_push($arr, explode(' - ', $row['tags']));
    }

    foreach($arr as $a) {
        foreach($a as $v){
            $items .= "<div class='tagdown'>" . $v . "</div>\n";
        }
    }

    echo $items;

-------------- ИЛИ ЖЕ -------------

    $arr = array();
    $items = "";
    while ($row = $result->fetch_assoc()) {
        $tag = explode(' - ', $row['tags']);
        foreach($tag as $v){
            $items .= "<div class='tagdown'>" . $v . "</div>\n";
        }
    }

    echo $items;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню