2015-12-21 155 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); 
} 

这将大块的数组中的列数,你想,而不是你想要的块的长度。