Php 如何对键值对中的相似值进行分组

Php 如何对键值对中的相似值进行分组,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我得到以下数组: Array ( [0] => stdClass Object ( [id] => 472 [userId] => 570 [docTypeId] => 2 [trNo] => 1 ) [1] => stdClass Object ( [id] => 4

我得到以下数组:

Array
(
    [0] => stdClass Object
        (
            [id] => 472
            [userId] => 570
            [docTypeId] => 2
            [trNo] => 1

        )

    [1] => stdClass Object
        (
            [id] => 479
            [userId] => 570
            [docTypeId] => 8
            [trNo] => 2

        )
    [2] => stdClass Object
        (
            [id] => 479
            [userId] => 570
            [docTypeId] => 8
            [trNo] => 1

        )
我想要的是基于相同的
[trNo]
应该有一个选项卡,如果
trNo
不同,那么它应该生成另一个选项卡。对于
trNo
的类似值,应该有一个选项卡

我使用foreach循环检查类似的值,如:

        <ul class="nav nav-tabs">
        <?php 

        foreach($array as $userdet){


            if($array->trNo == 1)
            {
        ?>

            <li class="active"><a data-toggle="tab" href="#home">My Detail</a></li>

        <?php } else {
other condition

    }

        ?>
            <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
        </ul>
 </div>

正如您所看到的,当前发生的情况是有两个
trNo
1
因此,它生成了两个选项卡。请帮我做这个

试试这个

设置一些变量并增加它

$m = 0;

foreach($array as $userdet){

 if($userdet->trNo == 1 && $m == 0 ){

 $m++;

}

}
改变

$array->trNo == 1 


如果trNo中只有1或2个,它应该可以工作。否则,您需要检查trNo是新的还是更早出现。

我已经这样尝试过了。你可以帮忙。 这仅适用于
trNo
的静态值

<?php
$array = array(array('id'=>472,'userId'=>570,'docTypeId'=>2,'trNo'=>1),array('id'=>479,'userId'=>570,'docTypeId'=>8,'trNo'=>2),array('id'=>479,'userId'=>570,'docTypeId'=>8,'trNo'=>1));
?>
 <ul class="nav nav-tabs">
        <?php 
        $tab = '';
        foreach($array as $userdet)
        {           
            if($userdet['trNo'] == 1 && $tab != $userdet['trNo'])
            { ?>
            <li class="active"><a data-toggle="tab" href="#home">My Detail</a></li>
            <?php 
            $tab = $userdet['trNo'];
            } 
            else
            { 
                if($tab == $userdet['trNo'])
                {
                    continue;
                }
             ?>
            <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
            <?php   
            }

           }?>
        </ul>
 </div>


在发布的每个答案中始终添加解释。像教室一样对待学生。
<?php
$array = array(array('id'=>472,'userId'=>570,'docTypeId'=>2,'trNo'=>1),array('id'=>479,'userId'=>570,'docTypeId'=>8,'trNo'=>2),array('id'=>479,'userId'=>570,'docTypeId'=>8,'trNo'=>1));
?>
 <ul class="nav nav-tabs">
        <?php 
        $tab = '';
        foreach($array as $userdet)
        {           
            if($userdet['trNo'] == 1 && $tab != $userdet['trNo'])
            { ?>
            <li class="active"><a data-toggle="tab" href="#home">My Detail</a></li>
            <?php 
            $tab = $userdet['trNo'];
            } 
            else
            { 
                if($tab == $userdet['trNo'])
                {
                    continue;
                }
             ?>
            <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
            <?php   
            }

           }?>
        </ul>
 </div>