Как разделить части строк знаком "," - PullRequest
0 голосов
/ 02 июня 2018

ОБНОВЛЕНИЕ ДЛЯ ОТВЕТА ДЖЕЙ :

Я сделал то, что вы сделали в этой ссылке :

public function ShowTag()
    {
        $blog_tags = array();
        $tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
        $tag->execute();
        while($row = $tag->fetch())
        {
            $blog_tags[] = $row['blog_tags'];
        }
        $final_anchors = "";
        $final_tags = "";
        foreach($blog_tags as $b)
        {
            $make_comma_seprated_tags_to_array = explode(",",$b);
            $final_tags = array_merge($final_tags,$make_comma_seprated_tags_to_array);
        }
        foreach($final_tags as $f)
        {
            $final_anchors .= '<a href="'.$f.'">'.$f."</a>";
        }
        return $final_anchors;
    }

Но это дает мнеэти ошибки:

Предупреждение: array_merge (): аргумент # 1 не является массивом

$final_tags = array_merge($final_tags,$make_comma_seprated_tags_to_array);

Предупреждение: Указан неверный аргумент для foreach ()

foreach($final_tags as $f)

================================================================================

Я работаю с PHP для разработки своего проекта.В основном у меня есть таблица с именем Blogs, в которой содержится некоторая информация о записях блога на моем сайте:

capture

Теперь я создал страницу, на которой все тегисообщения блога показаны там.Итак, чтобы сделать это, я кодировал это:

if(!empty($tags)){
    print_r($tagShow);
    $string = implode(',',$tagShow);
    echo $string;
}else{
    echo "There is no tag available right now!";
}

Как вы можете видеть, я имею в виду $tagShow, который в основном это метод:

public function ShowTag()
{
    $blog_tags = array();
    $tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
    $tag->execute();
    while($row = $tag->fetch())
    {
        $blog_tags[] = $row['blog_tags'];
    }
    return $blog_tags;
}

И он возвращаетмассив, подобный этому:

Array ( [0] => asdsadsa,hello [1] => new,old ) 

Вот почему я использовал implode функцию, чтобы преобразовать это в строку:

asdsadsa,hello ,new,old

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

Так что, если вы знаете, как это сделать, пожалуйста, помогите мне.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Вы инициализировали $final_tags как строку.Должно быть так:

$final_tags = [];

0 голосов
/ 02 июня 2018
public function ShowTag()
{
    $blog_tags = array();
    $tag = $this->_db->prepare("SELECT blog_tags FROM blogs");
    $tag->execute();
    while($row = $tag->fetch())
    {
        $tags = explode(",",$row['blog_tags']);
        $blog_tags=array_merge($blog_tags,$tags);

    }
    // $blog_tags have now all tags
   $final_anchors="";
    foreach($blog_tags as $b)
    {
     $final_anchors.='<a href="BASIC_URL'.$b.'">#'.$b."</a>";
    }
    return $final_anchors;
}

/ Мы также можем импортировать код с помощью вложенного цикла, но основная идея будет такой же /

http://sandbox.onlinephpfunctions.com/code/5670bf4019292d9cd06402c2fddeed17da9f7449 Проверьте эту ссылку для демонстрации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...