您好我正在尝试合并两个php数组。
第一个
array (size=13)
0 =>
object(stdClass)[30]
public 'ID' => string '1' (length=1)
public 'name' => string 'html5' (length=5)
public 'img' => string 'HTML5.png' (length=9)
1 =>
object(stdClass)[31]
public 'ID' => string '2' (length=1)
public 'name' => string 'css3' (length=4)
public 'img' => string 'css.png' (length=7)
2 =>
object(stdClass)[32]
public 'ID' => string '3' (length=1)
public 'name' => string 'php' (length=3)
public 'img' => string 'php1.png' (length=8)
3 =>
object(stdClass)[33]
public 'ID' => string '4' (length=1)
public 'name' => string 'java script' (length=11)
public 'img' => string 'javascript.png' (length=14)
第二个
array (size=3)
0 =>
object(stdClass)[26]
public 'ID' => string '1' (length=1)
public 'IDuser' => string '1' (length=1)
public 'IDskill' => string '1' (length=1)
1 =>
object(stdClass)[27]
public 'ID' => string '2' (length=1)
public 'IDuser' => string '1' (length=1)
public 'IDskill' => string '3' (length=1)
2 =>
object(stdClass)[28]
public 'ID' => string '3' (length=1)
public 'IDuser' => string '1' (length=1)
public 'IDskill' => string '4' (length=1)
第一个数组的ID等于第二个数组的IDskill。如果IDskill和ID相同,我正在尝试组合创建新数组,在新数组中使用类似的东西
public 'ID' => string '1' (length=1)
public 'name' => string 'html5' (length=5)
public 'img' => string 'HTML5.png' (length=9)
===>New field public 'MATCH' => string '1' (length=9)
答案 0 :(得分:0)
试试这个(其中a1
是第一个数组,a2
是第二个数组,$result
是最终合并数组):
$result = array();
$n=0;
foreach($a1 as $k=>$v) {
if (isset($v->ID) && isset($a2[$n]->ID) && $v->ID==$a2[$n]->ID) {
$result[$n]=$v;
$result[$n]->MATCH=1;
}
$n++;
}
print_r($result);
答案 1 :(得分:0)
使用array_merge()函数
<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
?>
&#13;
或
<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
$c=array_combine($fname,$age);
print_r($c);
?>
&#13;
答案 2 :(得分:0)
您可以使用How to Extract Default Control Template In Visual Studio?和array_map
:
$IDs
如果您不想使用这两个第一个匿名函数或者不想创建use(&$IDs)
数组,则可以将use(&$second_array)
替换为$match_element->MATCH = in_array($match_element->ID, $IDs);
行:
$second_array
用于循环遍历IDskill
元素的循环,以检查其中是否有任何元素$match_element->ID
等于IDskill
。
此外,如果数组中的所有元素具有相同的属性,则可能不需要检查ID
和<products>
是否存在。
答案 3 :(得分:0)
让我加上我的两分钱,如何从第二个
中的第一个数组中找到元素匹配ID $tmp = array_filter($array2, function($ar2) use ($ID) { return $ar2->IDskill === $ID; });
if ($tmp) // Found
else // Not found
所有代码可能都是
result = array()
foreach ($array1 as $item) {
$ID = $item->ID;
$tmp = array_filter($array2, function($ar2) use ($ID) { return $ar2->IDskill === $ID; });
if ($tmp) { // Found
$tmp = $item;
$tmp->MATCH = 1;
result[] = $tmp;
}
}