[英]trouble with array_merge, serialize and unserialize in php
我必须这样做:
unserialize($arraySerializedBefore)
] 例如:
Array
(
[1] => 'nanananana,lol,',
[2] => 'laaaaalalalala,asd,',
[3] => 'r0tfl,lmfao,ahah,'
)
要与第一个数组合并的第二个数组:
Array
(
[1] => 'dunnoWhat,write,',
[3] => 'hello,wooorld,'
)
所以我需要一个像这样的最终数组:
Array
(
[1] => 'nanananana,lol,\N,dunnoWhat,write,',
[2] => 'laaaaalalalala,asd,',
[3] => 'r0tfl,lmfao,ahah,\N,hello,wooorld,'
)
如果你看到它使用密钥合并它,如果它们具有相同的密钥,它会添加一个“\\ n”以进入一个新行(与BR标记相同......它只是一个例子)并在它之后添加字符串第二个数组对应于密钥。 但是,如果您不明白,请观看示例,您将会这样做。 谢谢
使用foreach
遍历第二个数组并将其键与第一个数组匹配,如果匹配,则通过连接更新第一个数组。
<?php
$arr1=Array(1 => 'nanananana,lol,',2 => 'laaaaalalalala,asd,',3 => 'r0tfl,lmfao,ahah,');
$arr2=Array(1 => 'dunnoWhat,write,',3 => 'hello,wooorld,');
$i=min(array_keys($arr1));
foreach($arr2 as $k=>$val)
{
if(array_key_exists($k,$arr1))
{
$arr1[$k].='\N, '.$val;
}
}
print_r($arr1);
OUTPUT :
Array
(
[1] => nanananana,lol,\N, dunnoWhat,write,
[2] => laaaaalalalala,asd,
[3] => r0tfl,lmfao,ahah,\N, hello,wooorld,
)
我只是想知道是否可以通过一个功能块(如函数式编程)来解决。 它是:
$foo = [
0 => "test zero",
1 => "test one",
2 => "test two",
3 => "test three"
];
$bar = [
1 => "test four",
5 => "test five",
3 => "test six",
4 => "test seven"
];
$result =
array_diff_key($foo, $bar)
+
array_combine(
$y = array_keys(array_intersect_key($foo, $bar)),
array_map(function($x) use ($foo, $bar)
{
return $foo[$x]."\n".$bar[$x];
}, $y)
)
+
array_diff_key($bar, $foo);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.