【问题标题】:How to group similar value from key value pair如何从键值对中对相似值进行分组
【发布时间】:2017-12-20 10:36:58
【问题描述】:

我得到以下数组:

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>

当前发生的情况是,您可以看到有两个 trNo1 因此,它会生成两个选项卡。请帮我解决这个问题

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:

    试试这个

    设置一些变量并增加它

    $m = 0;
    
    foreach($array as $userdet){
    
     if($userdet->trNo == 1 && $m == 0 ){
    
     $m++;
    
    }
    
    }
    

    【讨论】:

      【解决方案2】:

      改变

      $array->trNo == 1 
      

      $userdet->trNo == 1 
      

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

      【讨论】:

        【解决方案3】:

        我试过这样。你可以帮忙。 这仅适用于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>
        

        【讨论】:

        • 始终在您发布的每个答案中添加解释。像对待教室一样对待 SO。
        猜你喜欢
        • 1970-01-01
        • 2011-01-14
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 2023-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多