PHP创建数组(代码重构)


PHP creating array (Code refactoring)

嘿,下面是我目前正在使用的代码,它做它的工作,但我从另一个循环内多次调用它。谁能建议一个更干净的方式来重写这段代码?

$list = array();
for($i = 1; $i <= $number ; $i++) {
          array_push($list, array('text'=>$i, 'value'=>$i));
}
return $list;

一般来说,它通常只是创建一个关联数组,直到传递给它的数字。

array (size=100)
  0 => 
    array (size=2)
      'text' => int 1
      'value' => int 1
  1 => 
    array (size=2)
      'text' => int 2
      'value' => int 2
  2 => 
    array (size=2)
      'text' => int 3
      'value' => int 3
  3 => 
    array (size=2)
      'text' => int 4
      'value' => int 4
  4 => 
    array (size=2)
      'text' => int 5
      'value' => int 5
   5 => 
    array (size=2)
      'text' => int 6
    value' => int 6

很抱歉,如果这个问题在这个网站上不是很相关,我试图教自己更好的编码实践,我想不出还有哪里可以问这个问题。

由于某种原因,在重写函数时想到了短语数组映射,但我很难找到任何例子。

我不确定它在任何方面都更好,但听起来这就是你想要的:

$list = array_map(function($a) { 
    return array('text' => $a, 'value' => $a); 
}, range(1, $number));

你可以试试:

$list = array();
for($i = 1; $i <= $number ; $i++) {
          $list[] = array('text'=>$i, 'value'=>$i);
}
return $list;

它将在每次迭代时停止array_push函数调用。