PHP以增量值内爆

oti*_*nai 3 php implode

是否有任何方法在插入数组时添加增量值?

这是我想要增加值的代码段:

$entries = '<ul class="repeatData"><li class="listEntry1">' . implode('</li><li class="listEntry'. $countme .'">', $data) . '</li></ul>';
Run Code Online (Sandbox Code Playgroud)

我想以某种方式在$countme每次内爆每个数组值时使变量递增,如果这是可能的话.

Tom*_*ald 8

你不能用implode来做这件事,但是考虑将匿名函数应用于数组.你可以用更多的代码做你想做的事.

$entries = '<ul class="repeatData">';
$countme = 1;

array_walk($data, function ($element) use (&$entries, &$countme) { 
    $entries .= '<li class="listEntry'. $countme .'">'. $element . '</li>';
    $countme++;
});
$entries .= "</ul>";
Run Code Online (Sandbox Code Playgroud)

说明:我编写了一个匿名函数,告诉它有关$ entries和$ counter(所以它实际上是一个闭包),这样它就可以从它的作用域内修改它们,并将它传递给array_walk,它将把它应用到所有数组的元素.

  • 是的,for循环是一个更快的答案,但是闭包比html列表更有趣,并且是解决较难解决的问题的好技术。我正在对OP进行过时的验证! (2认同)
  • 他想将数组的元素连接到html列表中。那就是我所做的。我不明白问题是什么。我知道implode()会做什么。 (2认同)
  • 抱歉,您说的对,代码尚可,并且可以完成工作。我过多看了`array_map`的返回值,而不是闭包的`&entries`参数。 (2认同)
  • 我懂了!array_walk比array_map更正确。 (2认同)