我有一个数组,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中是否有一些内置函数可以做到这一点? array_keys()
没有帮助我:
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)
}
答案 0 :(得分:5)
试试这个。您可以使用 array_fill_keys()获取更多信息follow this link
$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'
);
$keys=array_keys($arr);
$filledArray=array_fill_keys($keys,array());
print_r($filledArray);
答案 1 :(得分:3)
这应该适合你:
只需array_combine()
来自旧数组的array_keys()
,其中array_fill()
'ed数组中包含空数组。
<?php
$newArray = array_combine(array_keys($arr), array_fill(0, count($arr), []));
print_r($newArray);
?>
输出:
Array
(
[4] => Array ()
[7] => Array ()
[9] => Array ()
[12] => Array ()
[13] => Array ()
[27] => Array ()
[41] => Array ()
)
答案 2 :(得分:1)
将值更改为数组保存键:
$arr2 = array_map(function ($i){
return array();
}, $arr);
结果
Array
(
[4] => Array ( )
[7] => Array ( )
[9] => Array ( )
[12] => Array ( )
[13] => Array ( )
[27] => Array ( )
[41] => Array ( )
)
答案 3 :(得分:0)
试试这个:
foreach($arr as $key => $value) {
$array[$key] = array('a','b','c');
}