【问题标题】:Split array into two ul columns将数组拆分为两个 ul 列
【发布时间】:2015-12-21 16:42:02
【问题描述】:

我正在获取一个 API 的职业列表,并将它们放入如下标题数组中:

$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。

【问题讨论】:

  • 它是一个数组,你可以只 chunk 并在每个块上分别做你的 &lt;ul&gt;implode&lt;/ul&gt;

标签: php html arrays function foreach


【解决方案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;
}
}

【讨论】:

  • 我不明白为什么有些帖子答案和问题下可能重复。如果它被关闭(作为重复),这将构成“垄断”答案,并且没有空间让其他人发布另一种方法。编辑:你删除了它,grazie ;-)
【解决方案2】:

你可以使用这样的函数

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

这会将您的数组分块为您想要的列数,而不是您想要的块的长度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-13
    • 2021-12-29
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多