我想创建一个函数来生成一个如下所示的数组:
$arr = [
'file1',
'file2',
'file3',
'file4',
'file5',
];
我知道我可以创建一个像这样的简单循环:
$arr = [];
for( $i = 1; $i <= 5; $i ++ ){
$arr[] = 'file' . $i;
}
但想法是给出参数$text = file
,$start = 1
和$elements = 5
optional $step = 1
。并使用内置的php函数来实现它。我尝试了类似的东西
$arr = array_merge( array_fill( 0, 5, 'file' ), range( 1, 5, 1 ) );
但从我得到的那个
$arr = [
"file",
"file",
"file",
"file",
"file",
0,
1,
2,
3,
4,
5,
];
您可以使用参数选择功能样式或经典循环方法。我使用相同的方程来确定范围的结束——以便生成正确数量的元素。(演示)
function map(
$text = 'file',
$elements = 5,
$start = 1,
$step = 1
) {
$end = $start + $elements * $step - 1;
return array_map(
fn($i) => $text . $i,
range($start, $end, $step)
);
}
或者
function loop(
$text = 'file',
$elements = 5,
$start = 1,
$step = 1
) {
$result = [];
$end = $start + $elements * $step - 1;
while ($start <= $end) {
$result[] = $text . $start;
$start += $step;
}
return $result;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句