我需要构建一个基于另一个数组的自定义键的数组。
算法理念:
$map
我期望 [
10 => 'banana 12345',
20 => 'banana 12346',
30 => 'banana 12347',
]
:
$map
(显然) [
0 => [
10 => 'banana 12345',
],
1 => [
20 => 'banana 12346',
],
2 => [
30 => 'banana 12347',
],
]
是什么:
#ingredients li {
list-style-type: none;
}
ol {
padding-bottom: 1em;
}
如何为这种情况指定数组键?
答案 0 :(得分:0)
使用array_fill_keys
功能
$list = [10, 20, 30];
$arr = array_fill_keys($list, 'banana');
更新
$list = [10, 20, 30];
$map = array_map(function ($item) {
return 'banana' . time();},
array_fill_keys($list));
答案 1 :(得分:0)
如果我没有误解你的要求。我有几种方法。这两种方法都适合你。
第一种方法(我的)
$keys = [10, 20, 30];
$initials = 'banana'
$time = time();
$array = array_fill_keys($keys, $initials." " .$time);
print '<pre>';
print_r($array);
print '</pre>';
输出
Array
(
[10] => banana 1514305494
[20] => banana 1514305494
[30] => banana 1514305494
)
第二种方法(你的)
$list = [10, 20, 30];
$time = time();
$map = array_map(function ($item) use ($time){
return [$item => 'banana ' . $time];
}, $list);
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($map)) as $k=>$v){
$singleDimension[$k]=$v;
}
print '<pre>';
print_r($singleDimension);
print '</pre>';
输出
Array
(
[10] => banana 1514305494
[20] => banana 1514305494
[30] => banana 1514305494
)