Dizeden Ul listesini oluşturmak için nasıl?

4 Cevap php

jQuery tercih ederim.

en i ile bir dize var diyelim,

adam, lisa, john, sarah

ve ben bunları açmak istiyorum:

<ul><li>Adam</li><li>lisa</li><li>john</li><li>sarah</li></ul>

4 Cevap

"<ul><li>" + "adam, lisa, john, sarah".split(", ").join("</li><li>") + "</li></ul>"

JQuery belirtilen beri [Edit:] Ben javascript üstlendi. Ben php bunu yapmak için en iyi yol bilmiyorum, ama sen php preg_split ve implode kullanarak yukarıdaki gibi aynı şeyi.

: JQuery $.map fonksiyonu kullanarak

var names = 'adam,lisa,john,sarah';
var html = '<ul>'+$.map(names.split(','), function(name){
    return '<li>'+name+'</li>'
}).join('')+'</ul>';

Yoksa patlayabilir ve foreach yapabilirdi:

$array = explode(', ','adam, lisa, john, sarah');
foreach ($array as $name) {
  $output .= '<li>' . $name . '</li>';
}
echo '<ul>' . $output . '</ul>';

Belki basit biraz.

EDIT: Hatta daha kolay düzenli bir str_replace olacaktır.

$list = '<ul><li>' . str_replace(', ','</li><li>','adam, lisa, john, sarah') . '</li></ul>';
echo $list;

PHP bunu yapmak için, bir dizi haline getirmek için dize patlayabilir ve daha sonra bir li etiketi için her öğeyi dönüştürmek için array_map kullanın. Bu işlem tamamlandıktan sonra, istenilen sonucu elde etmek için içeriye patlamak:

$items = explode( ",", "adam,lisa,john,sarah" );

array_map( "makeLiTag", $items );

echo( "<ul>" . implode( "", $items ) . "</ul>" );

function makeLiTag( &$item, $key )
{
    $item = "<li>$item</li>";
}