用于关联数组组合的嵌套 foreach 循环
我有一个关联数组,如下所示:
$myarray = array('a'=>array(), 'b'=>array(), 'c'=>array(), 'd'=>array());
我希望能够获取数组中的所有元素对。如果它不是关联数组,我会使用嵌套的 for 循环,例如:
for($i=0; $i<count($myarray); $i++) {
for($j=$i+1; $j<count($myarray); $j++) {
do_something($myarray[$i], $myarray[$j]);
}
}
我已经考虑过使用 foreach 循环,但当内部循环遍历所有元素时,某些对会重复。有办法做到这一点吗?
谢谢!
I have an associative array as follows:
$myarray = array('a'=>array(), 'b'=>array(), 'c'=>array(), 'd'=>array());
I want to be able to get all pairs of elements in the array. If it wasn't an associative array, I would use nested for loops, like:
for($i=0; $i<count($myarray); $i++) {
for($j=$i+1; $j<count($myarray); $j++) {
do_something($myarray[$i], $myarray[$j]);
}
}
I have looked at using foreach loops, but as the inner loop goes through ALL elements, some pairs are repeated. Is there a way to do this?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
array_values() 函数返回一个包含所有值的整数索引数组,因此您可以使用它来获取可以使用 for 迭代的列表。
否则你可以这样“销毁”数组:
The array_values() function returns an integer-indexed array containing all the values, so you can use it to obtain a list that you can iterate with a for.
Otherwise you can 'destroy' the array this way:
尝试:
Try: