在php上组合两个数组

在php上组合两个数组,php,arrays,Php,Arrays,你好,我正在尝试合并两个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(s

你好,我正在尝试合并两个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)
试试这个(其中
a1
是第一个数组,
a2
是第二个数组,
$result
是最终的合并数组):

试试这个(其中
a1
是第一个数组,
a2
是第二个数组,
$result
是最终的合并数组):

使用array_merge()函数

使用array\u merge()函数

您可以使用和:

对于循环,循环遍历
$second\u数组
元素,检查其中是否有
IDskill
等于
$match\u元素->ID

此外,如果数组中的所有元素具有相同的属性,则可能不需要检查
IDskill
ID
是否存在

您可以使用和:

对于循环,循环遍历
$second\u数组
元素,检查其中是否有
IDskill
等于
$match\u元素->ID


此外,如果数组中的所有元素具有相同的属性,则可能不需要检查
IDskill
ID
是否存在

让我加上我的两分钱,如何从第二个数组的第一个数组中找到匹配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;
        }
    }

让我加上两分,如何从第二个数组的第一个数组中找到匹配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;
        }
    }

这是一个例子,如何组合或合并两个arrya。这是一个例子,如何组合或合并两个arrya。这是一个例子,如何组合或合并两个arrya。关闭,但我这里有严重性:注意消息:未定义的偏移量:12I使用
isset
检查更新了我的答案。您收到的通知可能是因为数组的大小不同。close但我这里有严重性:注意消息:未定义的偏移量:12I使用
isset
检查更新了我的答案。您收到的通知可能是因为数组的大小不同。close但我这里有严重性:注意消息:未定义的偏移量:12I使用
isset
检查更新了我的答案。您收到的通知可能是因为数组大小不同。@PatrikDupeliz为什么拒绝接受?有些东西不行吗?@PatrikDupeliz你为什么拒绝接受?有些东西不行吗?@PatrikDupeliz你为什么拒绝接受?有些东西不起作用吗?
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;
        }
    }