php - 将字段添加到我们映射 company_id 的数组
问题描述
我有这个数组,我需要在其中添加另一个字段与 company_count - 我从另一个数组中获取该字段,但问题是当我这样做时,如果我在 company_number 中有 5 个结果,因为我正在取消设置它们我会有当我合并两个数组时只有 5 个结果。有了这个 foreach,我只是抓住了元素并添加了前 5 个结果。
其余的数组示例在这里 https://pastebin.com/LbkmXmMt
正如您所看到的,当我合并两个数组时,我只在前 5 个结果中有 company_number,现在我需要添加第一个数组
array (
0 =>
array (
'id' => '90557',
'company_id' => '1537',
),
1 =>
array (
'id' => '71619',
'company_id' => '257',
),
2 =>
array (
'id' => '87818',
'company_id' => '7865',
),
3 =>
array (
'id' => '87824',
'company_id' => '7865',
),
4 =>
array (
'id' => '87821',
'company_id' => '7865',
),
5 =>
array (
'id' => '52912',
'company_id' => '11682',
),
6 =>
array (
'id' => '85963',
'company_id' => '2485',
),
7 =>
array (
'id' => '80716',
'company_id' => '2485',
),
8 =>
array (
'id' => '79529',
'company_id' => '2485',
),
)
array (
0 =>
array (
'company' => '1537',
'company_number' => '1091',
),
1 =>
array (
'company' => '257',
'company_number' => '111',
),
2 =>
array (
'company' => '7865',
'company_number' => '33',
),
3 =>
array (
'company' => '11682',
'company_number' => '18',
),
4 =>
array (
'company' => '2485',
'company_number' => '165',
),
)
如果我有具有相同公司 ID 的结果,我需要添加相同的 company_number。例如,公司 id = 7865 的数组应该有 company_number = 33,三倍。
我需要结果是这样的
array (
0 =>
array (
'id' => '90557',
'company_id' => '1537',
'company_number' => '1091'
),
1 =>
array (
'id' => '71619',
'company_id' => '257',
'company_number' => '111'
),
2 =>
array (
'id' => '87818',
'company_id' => '7865',
'company_number' => '33'
),
3 =>
array (
'id' => '87824',
'company_id' => '7865',
'company_number' => '33'
),
4 =>
array (
'id' => '87821',
'company_id' => '7865',
'company_number' => '33'
),
5 =>
array (
'id' => '52912',
'company_id' => '11682',
'company_number' => '18'
),
6 =>
array (
'id' => '85963',
'company_id' => '2485',
'company_number' => '165'
),
7 =>
array (
'id' => '80716',
'company_id' => '2485',
'company_number' => '165'
),
8 =>
array (
'id' => '79529',
'company_id' => '2485',
'company_number' => '165'
),
)
$test = array();
foreach($individual as $value){
foreach($value as $j => $users) {
foreach($company_numbers as $key => $company_num) {
if($users['company_id'] == $company_num['company']) {
$test[]['company_number'] = $company_num['company_id'];
$test[] = $users;
}
}
}
}
array(18) {
[0]=>
array(1) {
["company_number"]=>
string(4) "1091"
}
[1]=>
array(18) {
["id"]=>
string(5) "90557"
["company_id"]=>
string(4) "1537"
}
需要这个在同一个数组中
解决方案
我想你想做这样的事情。
首先,您需要使用 ID 循环数组。
$companyIds = [
['company_id' => 1537],
['company_id' => 250],
['company_id' => 250]
];
$companyNumbers = [
['company' => 1537, 'company_number' => 33],
['company' => 250, 'company_number' => 100],
];
foreach ($companyIds as $key => $id) {
foreach ($companyNumbers as $numbers) {
if ($id['company_id'] == $numbers['company']) {
$companyIds[ $key ]['company_number'] = $numbers['company_number'];
}
}
}
如果您将公司 ID 添加为公司编号数组中每个条目的键,则更简单:
$companyIds2 = [
['company_id' => 1537],
['company_id' => 250],
['company_id' => 250],
];
$companyNumbers2 = [
1537 => ['company' => 1537, 'company_number' => 33],
250 => ['company' => 250, 'company_number' => 100],
];
foreach ($companyIds2 as $key => $id) {
if (array_key_exists( $id['company_id'], $companyNumbers2 )) {
$companyIds2[ $key ]['company_number'] = $companyNumbers2[$id['company_id']]['company_number'];
}
}
我希望这就是您正在寻找的答案。
推荐阅读
- android - 如何修复 NativeScript 错误:找不到模块:“nativescript-pager/angular”
- mysql - 使用 MySQL 连接表
- python - 你能解释一下每次迭代时 keras 的输出吗?
- bash - Shell 程序,for 循环出错。未使用的变量
- git - S3 版本控制与 Git 有何不同?
- python - 计算字符串中尾随的换行符
- view - Lotus @-formula - 是否可以为视图创建动态选择公式?
- adfs - 进行 ADFS 设置时:-无法将“System.DBNull”类型的对象转换为“System.String”类型
- java - 如何对并发 rxjava 执行进行单元测试
- php - 用正则表达式替换 PHP