需要使用php explode方法创建具有不同链接列表的li

需要使用php explode方法创建具有不同链接列表的li,php,explode,Php,Explode,以下是我为非链接编写的php分解代码: <?php $textarea = get_custom_field('my_custom_output'); $array = explode(',',$textarea); $output = ''; // initialize the variable foreach ($array as $item) { $item

以下是我为非链接编写的php分解代码:

<?php
            $textarea = get_custom_field('my_custom_output');
            $array = explode(',',$textarea);
            $output = ''; // initialize the variable
            foreach ($array as $item) {
               $item = trim($item); // clear off white-space
               $output .= '<li>' . $item . '</li>';
            }


?>

            <ul>
            <?php print $output; ?>
            </ul>
…以及成品:

  • 文本1
  • 文本2
  • 文本3
这样就行了。 现在我想做的是让text1成为mywebsite.com/text1-page-url/

我能做到这一点:

<?php
            $textarea = get_custom_field('my_custom_output');
            $array = explode(',',$textarea);
            $output = ''; // initialize the variable
            foreach ($array as $item) {
               $item = trim($item); // clear off white-space
               $output .= '<li class="link-class"><a title="' . $item . '" href="http://mywebsite.com/' . $item_links . '">' . $item . '</a></li>';
            }


?>

            <ul>
            <?php print $output; ?>
            </ul>
输出为:

  • …等(stackoverflow迫使我在这篇文章中只有两个链接,因为我只有0的声誉)
我想做的另一件事是将逗号改为新行。我知道新行的代码是\n,但我不知道如何替换它。这样我可以说:

text1:text1-page-url
text2:new-text2-page
text3:different-page-text3

我希望我能让你容易理解。我快到了,我只是被卡住了。请帮忙。谢谢大家!

只需使用
explode()
在循环中拆分$item即可:



并选择字符串分隔符,以便
$item\u text,$item\u links
不会包含它们。

分解字符串后,可以再次循环,并将文本和链接分隔为键/值。类似于

$array_final = new array();
$array_temp = explode(',', $textarea);
foreach($array_temp as $item) {
    list($text, $link) = explode(':', $item);
    $array_final[$text] = $link;
}

foreach($array_final as $key => $value) {
    echo '<li><a href="'.$value.'">'.$key.'</a></li>';
}
$array_final=new array();
$array_temp=explode(',',$textarea);
foreach($array\u temp作为$item){
列表($text,$link)=分解(“:”,$item);
$array_final[$text]=$link;
}
foreach($array\u final as$key=>$value){
回音“
  • ”; }
    要将逗号更改为新行,可以使用


    我在这里看到两个缺陷:1)我们不能保证
    $key
    是唯一的,因此一些数据可能会丢失;2) 不需要第二个循环,这是浪费资源。是的,我喜欢你在一次迭代中所做的。我的意思是我只需要手动进入新行。再也不会有像我误解的那样的逗号了“我想做的另一件事是把逗号换成新行”——抱歉,没问题。我会竖起大拇指,但不幸的是,我必须有15个代表这样做。谢谢你的回答!它帮助我学习,即使它与我当前的需求无关。我认为这可能会奏效!!我试试看。谢谢几分钟后再联系你,让你知道它是否有效。现在我需要添加第三个半升。希望你能帮忙=D非常感谢你迄今为止的帮助!
    text1:text1-page-url
    text2:new-text2-page
    text3:different-page-text3
    
    <?php
    $separator1 = "\n";
    $separator2 = ":";
    $textarea = get_custom_field('my_custom_output');
    $array = explode($separator1,$textarea);
    $output = ''; // initialize the variable
    foreach ($array as $item) {
        list($item_text, $item_links) = explode($separator2, trim($item));
        $output .= '<li class="link-class"><a title="' . $item_text . '" href="http://mywebsite.com/' . $item_links . '">' . $item_text . '</a></li>';
    }
    ?>
    
    <ul>
    <?php print $output; ?>
    </ul>
    
    $array_final = new array();
    $array_temp = explode(',', $textarea);
    foreach($array_temp as $item) {
        list($text, $link) = explode(':', $item);
        $array_final[$text] = $link;
    }
    
    foreach($array_final as $key => $value) {
        echo '<li><a href="'.$value.'">'.$key.'</a></li>';
    }
    
    str_replace(",", "\r\n", $output)