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>