Php 组合两个值匹配的关联数组
我有两个关联数组:$arr1和$arr2。我想创建$arr3,如果日期匹配,它将组合“name”和“character”…如果日期不匹配,则只需字符: 这是1美元:Php 组合两个值匹配的关联数组,php,Php,我有两个关联数组:$arr1和$arr2。我想创建$arr3,如果日期匹配,它将组合“name”和“character”…如果日期不匹配,则只需字符: 这是1美元: Array ( [0] => stdClass Object ( [date] => 2010/01/01 [name] => Mario Lopez ) [1] => stdClass Object ( [date] => 20
Array
(
[0] => stdClass Object
(
[date] => 2010/01/01
[name] => Mario Lopez
)
[1] => stdClass Object
(
[date] => 2010/01/02
[name] => Lark Voorhies
)
)
这是2美元:
Array
(
[0] => Array
(
[date] => 2010/01/01
[character] => AC Slater
)
[1] => Array
(
[date] => 2010/01/02
[character] => Lisa Turtle
)
[2] => Array
(
[date] => 2010/01/03
[character] => Kelly Kapowski
)
)
使用array_intersect会出现以下错误:“stdClass类的对象无法转换为字符串”
这是我想要的,如果可能的话(即$arr3):
这个函数发布在php.net上,我已经用了很长时间了。它应该满足你的要求
function array_extend($a, $b) {
foreach($b as $k=>$v) {
if( is_array($v) ) {
if( !isset($a[$k]) OR isset($v[0])) {
$a[$k] = $v;
} else {
$a[$k] = array_extend($a[$k], $v);
}
} else {
$a[$k] = $v;
}
}
return $a;
}
用法:
$array = array_extend($orig_array,$new_array);
请注意,您必须将对象转换为数组,或者修改函数以将对象动态转换为数组($a=(array)$a)
编辑:
原始来源
请注意,我做了一个小的修改,以解决给定函数的一个问题,即它无法正确扩展带有数字键的数组。此函数发布在php.net上,我已经使用了很长一段时间。它应该满足你的要求
function array_extend($a, $b) {
foreach($b as $k=>$v) {
if( is_array($v) ) {
if( !isset($a[$k]) OR isset($v[0])) {
$a[$k] = $v;
} else {
$a[$k] = array_extend($a[$k], $v);
}
} else {
$a[$k] = $v;
}
}
return $a;
}
用法:
$array = array_extend($orig_array,$new_array);
请注意,您必须将对象转换为数组,或者修改函数以将对象动态转换为数组($a=(array)$a)
编辑:
原始来源
请注意,我做了一个小修改,以解决给定函数的一个问题,即它无法正确扩展带有数字键的数组您必须编写一个自定义函数来执行组合。您必须编写一个自定义函数来执行组合。谢谢$数组=数组扩展($orig\u数组,$new\u数组);。。。。。你的意思是:$array=array\u extend($arr1,$arr2)?变量的命名无关紧要:我只是一个例子,调用变量$arr1,$arr2不会有任何区别:)谢谢$数组=数组扩展($orig\u数组,$new\u数组);。。。。。你的意思是:$array=array\u extend($arr1,$arr2)?变量的命名无关紧要:P我只是一个例子,调用变量$arr1,$arr2不会有任何区别:)