gpt4 book ai didi

php - 如何使用foreach遍历两个相同长度的集合

转载 作者:可可西里 更新时间:2023-11-01 00:40:33 26 4
gpt4 key购买 nike

如果我们想连接两个集合的某些属性,假设它们具有相同的长度,例如:

集合 1:

$collection1 = Collection { ▼
#items: array:2 [ ▼
0 => Item { ▼
+id: 1
+first_name: 'first_name 1'
+last_name: 'first_name 1'
+nbr_hours: 9
}
1 => Item { ▼
+id: 2
+first_name: 'first_name 2'
+last_name: 'first_name 2'
+nbr_hours: 10
}
]
}

集合 2:

$collection2 = Collection { ▼
#items: array:2 [ ▼
0 => Item { ▼
+id: 1
+first_name: 'first_name 1'
+last_name: 'first_name 1'
+nbr_hours: 10
}
1 => Item { ▼
+id: 2
+first_name: 'first_name 2'
+last_name: 'first_name 2'
+nbr_hours: 12
}
]
}

我们如何同时遍历它们并连接 nbr_hours 属性,例如这样输出将类似于:

$nested_collection = Collection { ▼
#items: array:2 [ ▼
0 => Item { ▼
+id: 1
+first_name: 'first_name 1'
+last_name: 'first_name 1'
+nbr_hours: 19
}
1 => Item { ▼
+id: 2
+first_name: 'first_name 2'
+last_name: 'first_name 2'
+nbr_hours: 22
}
]
}

最佳答案

这是一个数组的例子,你可以做些什么来实现这个 -

$c1 = [
['id' => 1, 'hrs' => 9],
['id' => 2, 'hrs' => 12],
];

$c2 = [
['id' => 1, 'hrs' => 10],
['id' => 2, 'hrs' => 11],
];

foreach($c1 as &$c) {
// get the index for the id from the 2nd array
$c2_index = array_search($c['id'], array_column($c2, 'id'));
// Increment the value
$c['hrs'] += $c2[$c2_index]['hrs'];
}

Demo

关于php - 如何使用foreach遍历两个相同长度的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com