Php 如何将数组键复制到另一个数组,并用空数组替换值?

Php 如何将数组键复制到另一个数组,并用空数组替换值?,php,arrays,Php,Arrays,我有一个数组,f。e、 : $arr = array( 4 => 'some value 1', 7 => 'some value 2', 9 => 'some value 3', 12 => 'some value 4', 13 => 'some value 5', 27 => 'some value 6', 41 => 'some value 7' ) 我需要创建另一个数组,其中的值将是数组,

我有一个数组,f。e、 :

$arr = array(
    4 => 'some value 1',
    7 => 'some value 2',
    9 => 'some value 3',
    12 => 'some value 4',
    13 => 'some value 5',
    27 => 'some value 6',
    41 => 'some value 7'
)
我需要创建另一个数组,其中的值将是数组,但键将是相同的;像这样:

$arr = array(
    4 => array(),
    7 => array(),
    9 => array(),
    12 => array(),
    13 => array(),
    27 => array(),
    41 => array()
)
PHP中是否有一些内置函数可以实现这一点<代码>数组密钥()对我没有帮助:

var_dump(array_keys($arr));
返回:

array(7) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
  [5]=>
  int(5)
  [6]=>
  int(6)
}

这应该适合您:

仅从旧数组中删除您的,其中“ed”数组中充满了空数组

<?php

    $newArray = array_combine(array_keys($arr), array_fill(0, count($arr), []));
    print_r($newArray);

?>

试试这个。有关详细信息,您可以使用数组填充键()

试试这个:

foreach($arr as $key => $value) {
  $array[$key] = array('a','b','c');
}

将值更改为数组保存键:

$arr2 = array_map(function ($i){
    return array();
}, $arr);
结果

Array
(
    [4] => Array ( )  
    [7] => Array ( )    
    [9] => Array ( )    
    [12] => Array ( )    
    [13] => Array ( )    
    [27] => Array ( )
    [41] => Array ( )

)

数组_keys()对我没有帮助。顺便说一句,我认为我的解决方案比这更快,因为函数调用更少:)是的,这是可能的,但是是的,这也是另一个更长的解决方案…而且速度慢40%:))谢谢。使用这个
数组填充键(数组填充键($arr),array())就足够了,但是的,这也是另一个解决方案。。。
$arr2 = array_map(function ($i){
    return array();
}, $arr);
Array
(
    [4] => Array ( )  
    [7] => Array ( )    
    [9] => Array ( )    
    [12] => Array ( )    
    [13] => Array ( )    
    [27] => Array ( )
    [41] => Array ( )

)