请问如何写这样的循环呢?
$arr1、$arr2都为二维数组,然后能够让他们一起同时循环,比如这样foreach($arr1 as $a1 , $arr2 as $a2)。因为我想通过$arr1[][uid]找到$arr2[][uid]中相等的数组。谢谢大虾帮忙!

解决方案 »

  1.   

    foreach($arr1 as $k=>$v){
      echo $v; //即$arr1[$k]
      echo $arr2[$k];
    }//注如果二数据组键名不同,需重置键名
      

  2.   

    谢谢楼上,再次请教。我的意思是说:if($arr1[][uid]==$arr2[][uid]){***},实现这样的功能。而且,能够利用这两个数组,如$arr1[3][uid]==$arr2[5][uid],这样就可以利用$arr1[3]和$arr2[5]了。
      

  3.   

    for($i=0;$i<count($arr1);$i++)
    {
        for($j=0;$j<count($arr2);$j++)
        {
            if($arr1[$i]['uid']==$arr2[$j]['uid'])
            {
               echo $i.':'.$arr1[$i][uid].'<br>';
               echo $j.':'.$arr2[$j][uid];
            }
        }
      

  4.   


    $array1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    $array2 = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 8);foreach ($array1 as $key=>$value) {
       if ($key2=array_search($value,$array2)){
           echo 'array1 key'.$key .'== array2 key'.$key2.' 相等';
           break;
       }
    }
      

  5.   


    这里有个break 如果是有多个相等的话 去掉这个break 即可.
      

  6.   


    谢谢,我是想实现这样的功能:$arr1 = array(
    0 => array(
    'uid'   => '1',
    'uname' => 'a',
    ),

    1 => array(
    'uid'   => '2',
    'uname' => 'b',
    ),

    2 => array(
    'uid'   => '3',
    'uname' => 'c',
    ),
    );$arr2 = array(
    0 => array(
    'uid'   => '3',
    'uname' => 'd',
    ),

    1 => array(
    'uid'   => '4',
    'uname' => 'e',
    ),

    2 => array(
    'uid'   => '5',
    'uname' => 'f',
    ),
    );for($i=0;$i<count($arr1);$i++)
    {
        for($j=0;$j<count($arr2);$j++)
        {
            if($arr1[$i]['uid']==$arr2[$j]['uid'])
            {
               echo $i.':'.$arr1[$i][uid].'<br>';
               echo $j.':'.$arr2[$j][uid];
            }
        }

    如果双循环的话要循环2*2次,我想能不能通过一层循环(2次)实现呢?您说的那个我调试了一下好像不行,请大神帮忙!!!非常感谢!!!
      

  7.   

    本帖最后由 PhpNewnew 于 2012-02-01 10:37:47 编辑
      

  8.   

    谢谢!不过您的代码还是用了两个foreach。
    就是想通过一层循环取得索引值(第一维的键名),不过看来实现不了了。谢谢关注!