我有一个2d数组,如下所示:
\x{e76f}\x{e76f}1\x{e76f}2\x{e76f}
4.5.6.5
我正试图在它前面加上一个列,如下所示:
\x{e76f}\x{e76f}
X-4-5
使用1array_unshift()will cause the elements to become shuffled and I need them to be retained. I also triedarray_merge()‘以及使用现有数组“添加”新列。
做这件事最好的方法是什么?
发布于 2015-11-27 01:57:54
从评论中发帖。试试这个。链接
$arr = array(
array(1,2,3),
array(4,5,6)
);
foreach($arr as $k => $v){
array_unshift($arr[$k],"X");
}
print_r($arr);发布于 2015-11-19 06:39:59
您可以使用array_map和array_push,如
$arr = [[1, 2, 3], [4, 5, 6]];
$result = array_map(function($v, $a) {
$v = array_merge([$a],$v);
return $v;
}, $arr, ['X', 'X']);
print_r($result);发布于 2022-09-13 14:15:35
对于一个现代的、功能式的片段,对一个动态生成的数组进行array_merge()的迭代调用,该数组包含您的新值和原始数组。
代码:(演示)
var_export(
array_map(
'array_merge',
array_fill(0, count($array), ['X']),
$array
)
);或:(演示)
var_export(
array_map(
fn($row) => array_merge(['X'], $row),
$array
)
);对于简洁、经典的循环,在迭代时通过引用修改原始元素/行。同样,这种方法修改了原始数组。
代码:(演示)
foreach ($array as &$row) {
array_unshift($row, 'X');
}
var_export($array);如果要将数据追加到每一行的末尾,则在array_merge()调用:array_map(fn($row) => array_merge($row, ['X']))中反转行和静态数据的顺序。
当用非数字键合并数据时,您可以使用联合运算符(+)来合并,而不是使用array_merge()或array_replace()。如果使用联合运算符,请注意共享密钥不会妨碍在结果中使用所需的值。
https://stackoverflow.com/questions/33796761
复制相似问题