数组函数创建新数组,值为键?

时间:2013-06-03 19:29:03

标签: php arrays

我有一个数组:

$ids = array(1 => '3010', 2 => '10485', 3 => '5291');

我想创建一个新数组,它接受$ ids数组的值,并将它们设置为新数组的键,具有相同的值。

最后一个数组是:

$final = array('3010' => 'Green', '10485' => 'Green', '5291' => 'Green');

这将在apc_add()中使用。

我知道我可以通过循环来实现这一目标。

$final = array();

foreach($ids as $key => $value):
  $final[$value] = 'Green';
endforeach;

但是我想知道是否有php函数可以执行此操作而无需使用forloop,谢谢!

2 个答案:

答案 0 :(得分:5)

您正在寻找array_fill_keys

$final = array_fill_keys($ids, "Green");

但是,请注意,作为整数的十进制表示的字符串在用作数组键时实际上会转换为整数。这意味着在您的示例中,最终作为$final中的键的数字将被转换为整数。很可能在实践中不会有所作为,但你应该知道它。

答案 1 :(得分:3)

您可以这样使用array_fill_keys

$final = array_fill_keys($ids, "Green");