2015-12-21 106 views
0

我抓的職業清單進行的API,並把它們變成冠軍的數組是這樣的:拆分陣列分成兩個UL列

$titles = array(); 
$arr = $doc->getElementsByTagName("h4"); 
foreach($arr as $item) { 
$titles[] = $item->nodeValue; 
} 

$content = occupations_html($titles); 

return $content; 

我再吐出那些片頭到無序列表/列表項像這樣:

function occupations_html($titles){ 
    $content = '<ul><li>'; 
    $content .= implode('</li><li>', $titles); 
    $content .= '</li></ul>'; 

    return $content; 
} 

這很適合創建一個無序列表,但我很難將這個動態列表分配到兩個甚至是ul的列表中。

+1

這是一個數組,你可以[chunk](http://php.net/array_chunk),並在每個塊上單獨執行你的'

    implode
'。 –

回答

1

試試這個,你可以做UL分裂你自己:

$i=0; 
foreach($array as $value) { 
if ($i++ % 3 == 0) { 
    $column1[] = $value; 
} 
if ($i++ % 3 == 1) { // check mod==1 
    $column2[] = $value; 
} 
if ($i++ % 3 == 2) { // check mod==2 
    $column3[] = $value; 
} 
} 
+0

我不明白爲什麼一些職位的答案和可能重複的問題。如果這種情況被封閉(作爲副本),這將構成「壟斷」的答案,並且沒有餘地讓其他人發佈另一種方法。編輯:你刪除它,* grazie * ;-) –

1

您可以使用功能,像這樣

function array_column_chunk($data, $columns = 2, $preserve_keys = false){ 
    return array_chunk($data, ceil(count($data)/$columns), $preserve_keys); 
} 

這將大塊的數組中的列數,你想,而不是你想要的塊的長度。