【发布时间】:2021-11-10 22:10:23
【问题描述】:
我有两个数组。一个是颜色列表,第二个是键值对的关联数组。我的目标是从关联数组中获取键值对,并使它们成为颜色数组中每个项目的子数组。搜索 SO 给我带来了各种相邻的问题,但不是我具体遇到的问题。下面是两个示例数组,然后 $final 就是我想要实现的:
$colors = ['#eea845', '#64A0B4', '#003c50', '#FF5568', '#eee', '#5cb85c', '#5bc0de', '#f0ad4e', '#d9534f'];
$test = [
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3',
'key4' => 'val4',
'key5' => 'val5',
'key6' => 'val6',
'key7' => 'val7',
'key8' => 'val8',
'key9' => 'val9',
];
$final = [
'#eea845' => [
'name' => 'key1',
'value' => 'val1',
],
'#64A0B4' => [
'name' => 'key2',
'value' => 'val2',
],
etc.....
]
我一直在研究 array_walk、array_map,并试图弄清楚如何结合 for 和 foreach强>循环。我查看了此处给出的答案 (Append one array values as key value pair to another array php),但我不确定如何在已经存在的数组上使用它并能够获取每个数组的索引。例如,该解决方案使用 array_walk($array1, function(&$v, $k) use($array2) { $v['date'] = $array2[$k]; });,但我需要将 $array2 中的值添加到 $array1 中已有的项目中,而我尝试使用 $i 作为索引执行 function($i, $v, $k)在 $array1 中,这不起作用,$i 未定义。
我很困惑,不知道下一步该往哪里看。你会怎么做
return $colors[$i] =>
[
'name' => $test[$key],
'value' => $test[$name]
]
?
(对于上下文,我正在使用它来获取输入到 Twig 模板中的值,这看起来是解决问题的一半的最佳方法。但是如果这方面太难了......)
【问题讨论】:
-
array_map 然后 array_combine