Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关联数组组合的嵌套foreach循环_Php_Arrays_Associative Array - Fatal编程技术网

Php 关联数组组合的嵌套foreach循环

Php 关联数组组合的嵌套foreach循环,php,arrays,associative-array,Php,Arrays,Associative Array,我有一个关联数组,如下所示: $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($my

我有一个关联数组,如下所示:

$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]);
  }
}
for($i=0;$iarray_values()函数返回一个包含所有值的整数索引数组,因此您可以使用它来获取一个列表,可以使用for进行迭代

否则,您可以通过以下方式“销毁”阵列:

 while($k = array_pop($my_array)) {
   foreach($my_array as $j){ 
     do_something($k, $j);
   }
 }
尝试:

$keys=array\u keys($myarray);
$c=计数($myarray);
foreach($k=>$key1){
对于($i=$k+1;$i<$c;$i++){
dosomething($myarray[$key1],$myarray[$keys[$i]]);
}
}

关联数组的键是否以任何方式排序?谢谢,我想这给了我所需的线索。我使用了array_keys()而不是array_values(),然后使用两个嵌套for循环循环遍历键。成功!:)
$keys = array_keys($myarray);
$c = count($myarray);
foreach ($keys as $k => $key1) {
    for ($i = $k + 1; $i < $c; $i ++) {
        dosomething($myarray[$key1], $myarray[$keys[$i]]);
    }
}