Php 我想在$employee\u薪资数组的$employee数组中添加薪资密钥

Php 我想在$employee\u薪资数组的$employee数组中添加薪资密钥,php,Php,我想从$employee_salary数组中添加$employee数组中的salary key,这两个数组都是关联的,并且仅根据索引添加薪资。存在一些未定义偏移量的错误。我无法识别该问题。这些错误类似于未定义偏移量。会出现什么问题 $employee = array ( 0=> array("employee_id"=>1, "firstName"=>"Zahir", "lastName"=>"Alam", "Age"=>25, "Company"=

我想从$employee_salary数组中添加$employee数组中的salary key,这两个数组都是关联的,并且仅根据索引添加薪资。存在一些未定义偏移量的错误。我无法识别该问题。这些错误类似于未定义偏移量。会出现什么问题

    $employee = array
(
0=>
    array("employee_id"=>1, "firstName"=>"Zahir", "lastName"=>"Alam", "Age"=>25, "Company"=>"Switchme", "Role"=>"Developer", "Department"=>"Tech"
        ,"Head"=>
            array("Id"=>3 , "Name"=>"Sourasis Roy")
    )
,
1=>
    array("employee_id"=>2, "firstName"=>"Amith", "lastName"=>"Manniken", "Age"=>25, "Company"=>"Switchme", "Role"=>"Developer", "Department"=>"Tech"
        ,"Head"=>
            array("Id"=>3 , "Name"=>"Sourasis Roy")
    )
,
2=>
    array("employee_id"=>3, "firstName"=>"Sourasis", "lastName"=>"Roy", "Age"=>28, "Company"=>"Switchme", "Role"=>"CTO")
,
3=>
    array("employee_id"=>4, "firstName"=>"Aditya", "lastName"=>"Mishra", "Age"=>29, "Company"=>"Switchme", "Department"=>"Tech", "Role"=>"CEO")
,
4=>
    array("employee_id"=>5, "firstName"=>"Priti", "lastName"=>"Lata", "Age"=>24, "Company"=>"Switchme", "Role"=>"HR")
,
5=>
    array("employee_id"=>6, "firstName"=>"Sumita", "lastName"=>"Nath", "Age"=>24, "Company"=>"Switchme", "Role"=>"HLA Head", "Department"=>"Crm")
,
6=>
    array("employee_id"=>7, "firstName"=>"Tarini", "lastName"=>"Khanna", "Age"=>22, "Company"=>"Switchme", "Role"=>"Content Writer")
,
7=>
    array("employee_id"=>8, "firstName"=>"Abhisek", "lastName"=>"Soni", "Age"=>23, "Company"=>"Switchme", "Role"=>"HLA", "Department"=>"Crm","Head"=>array("Id"=>5 , "Name"=>"Sumita Nath")
    )
,
8=>
    array("employee_id"=>9, "firstName"=>"Ankit", "lastName"=>"Pump", "Age"=>23, "Company"=>"Switchme", "Role"=>"HLA", "Department"=>"Crm"
        ,"Head"=>
            array("Id"=>5 , "Name"=>"Sumita Nath")
    )
,
9=>
    array("employee_id"=>10, "firstName"=>"Pogo", "lastName"=>"Laal", "Age"=>23, "Company"=>"Switchme", "Role"=>"Designer")
,
10=>
    array("employee_id"=>11, "firstName"=>"Sabina", "lastName"=>"Sekh", "Age"=>28, "Company"=>"Switchme", "Role"=>"HLA Head", "Department"=>"Crm")
,
11=>
    array("employee_id"=>12, "firstName"=>"Sanjay", "lastName"=>"Poudal", "Age"=>24, "Company"=>"Switchme", "Role"=>"HLA Head", "Department"=>"Crm"
        ,"Head"=>
            array("Id"=>10 , "Name"=>"Sabina Sekh")
    )
,
);


    $employee_salary = array
(
7=>
    array("employee_id"=>7, "salary"=>"55,000"
    )
,
2=>
    array("employee_id"=>2, "salary"=>"60,000"
    )
,
9=>
    array("employee_id"=>9, "salary"=>"50,000"
    )
,
10=>
    array("employee_id"=>10, "salary"=>"30,000"
    )
,
);
    $ar= array();
for($j=0;$j<count($employee);$j++)
{

    if($employee[$j]==$employee_salary[$j])
    {
        $ar=$employee[$j]+$employee_salary[$j];
        print_r($ar);
        echo "<br>";
    }
}
$employee=array
(
0=>
数组(“员工id”=>1,“名字”=>“Zahir”,“姓氏”=>“Alam”,“年龄”=>25,“公司”=>“Switchme”,“角色”=>“开发者”,“部门”=>“技术”
,“头”=>
数组(“Id”=>3,“名称”=>Sourasis Roy”)
)
,
1=>
数组(“员工id”=>2,“名字”=>“Amith”,“姓氏”=>“Manniken”,“年龄”=>25,“公司”=>“Switchme”,“角色”=>“开发者”,“部门”=>“技术”
,“头”=>
数组(“Id”=>3,“名称”=>Sourasis Roy”)
)
,
2=>
数组(“员工id”=>3,“姓氏”=>“苏拉西斯”,“姓氏”=>“罗伊”,“年龄”=>28,“公司”=>“切换我”,“角色”=>“首席技术官”)
,
3=>
数组(“员工id”=>4,“名字”=>“Aditya”,“姓氏”=>“Mishra”,“年龄”=>29,“公司”=>“Switchme”,“部门”=>“技术”,“角色”=>“CEO”)
,
4=>
数组(“员工id”=>5,“名字”=>“Priti”,“姓氏”=>“Lata”,“年龄”=>24,“公司”=>“Switchme”,“角色”=>“HR”)
,
5=>
数组(“员工id”=>6,“名字”=>“Sumita”,“姓氏”=>“Nath”,“年龄”=>24,“公司”=>“Switchme”,“角色”=>“HLA负责人”,“部门”=>“Crm”)
,
6=>
数组(“员工id”=>7,“姓氏”=>“塔里尼”,“姓氏”=>“卡纳”,“年龄”=>22,“公司”=>“切换我”,“角色”=>“内容编写者”)
,
7=>
数组(“员工id”=>8,“姓氏”=>“阿披实”,“姓氏”=>“Soni”,“年龄”=>23,“公司”=>“Switchme”,“角色”=>“HLA”,“部门”=>“Crm”,“主管”=>数组(“id”=>5,“姓名”=>“Sumita Nath”)
)
,
8=>
数组(“员工id”=>9,“名字”=>“Ankit”,“姓氏”=>“Pump”,“年龄”=>23,“公司”=>“Switchme”,“角色”=>“HLA”,“部门”=>“Crm”
,“头”=>
数组(“Id”=>5,“名称”=>Sumita Nath”)
)
,
9=>
数组(“员工id”=>10,“姓氏”=>“Pogo”,“姓氏”=>“Laal”,“年龄”=>23,“公司”=>“Switchme”,“角色”=>“设计师”)
,
10=>
数组(“员工id”=>11,“姓氏”=>“Sabina”、“姓氏”=>“Sekh”、“年龄”=>28、“公司”=>“Switchme”、“角色”=>“HLA负责人”、“部门”=>“Crm”)
,
11=>
数组(“员工id”=>12,“姓氏”=>Sanjay”、“姓氏”=>Poudal”、“年龄”=>24、“公司”=>Switchme”、“角色”=>HLA负责人”、“部门”=>Crm”
,“头”=>
数组(“Id”=>10,“Name”=>Sabina Sekh”)
)
,
);
$employee\u salary=数组
(
7=>
数组(“员工id=>7,“工资”=>55000”
)
,
2=>
数组(“员工id”=>2,“工资”=>60000”
)
,
9=>
数组(“员工id”=>9,“工资”=>50000”
)
,
10=>
数组(“员工id”=>10,“工资”=>30000”
)
,
);
$ar=array();

对于($j=0;$j,如果您注意到的话,
$employee[$j]
$employee\u salary[$j]
是数组,因此不应在它们之间进行相等的比较。另外,
$employee
$employee\u salary
数组的大小不同,这就是为什么在
for
循环中执行
$employee\u salary[$j]
时会出现未定义的索引错误

使用嵌套的
foreach
循环以及来实现所需的结果,如下所示:

foreach($employee as &$emp1){
    foreach($employee_salary as $emp2){
        if($emp1['employee_id'] == $emp2['employee_id']){
            $emp1['salary'] = $emp2['salary'];
        }
    }
}

// Display complete array structure of $employee
var_dump($employee);

在带有array_列的employee id上建立索引,循环工资并使用相同的键将值添加到employee数组中

$employee = array_column($employee, null, "employee_id");
$employee_salary = array_column($employee_salary, "salary", "employee_id");

foreach($employee_salary as $key => $v){
    $employee[$key]['salary'] = $v;
}

var_dump($employee);

您只需使用
array\u walk

$emp_s = array_column($employee_salary, 'salary','employee_id');
array_walk($employee, function(&$v, $k) use ($emp_s){
  if(array_key_exists($k, $emp_s)){
    $v['salary'] = $emp_s[$k];
  }
});


这不是意味着对循环中的每个项都运行array\u列吗?
$temp        = array_column($employee_salary, 'salary','employee_id');
array_walk($employee, function(&$v, $k) use ($temp){
    $v['salary'] = array_key_exists($k, $temp) ? $temp[$k] : null;
});