PHP数组长度

PHP数组长度,php,arrays,Php,Arrays,所以这可能有点冗长,但我会尽量让它简洁 我有一个db查询,它拉入3个不同的标记ID,其中2个与4个集线器ID关联,而1个仅与3个关联 我返回所有标记,并按ID对结果进行排序(因此标记1的所有4个结果都被分组,标记2的所有4个,标记3的所有3个),如下所示: 然后我做一个while循环,并为每个标记ID(3x)循环它。在这里面,我在array_列搜索中使用array_键来查找每个标记ID的数组索引,计算我有多少个结果(4、4、3),然后使用array键获取该行的数据,并使用循环编号将该行数据推送到

所以这可能有点冗长,但我会尽量让它简洁

我有一个db查询,它拉入3个不同的标记ID,其中2个与4个集线器ID关联,而1个仅与3个关联

我返回所有标记,并按ID对结果进行排序(因此标记1的所有4个结果都被分组,标记2的所有4个,标记3的所有3个),如下所示:

然后我做一个while循环,并为每个标记ID(3x)循环它。在这里面,我在array_列搜索中使用array_键来查找每个标记ID的数组索引,计算我有多少个结果(4、4、3),然后使用array键获取该行的数据,并使用循环编号将该行数据推送到数组中以供以后排序:

while($currentTag = pg_fetch_assoc($tagList)) {
    $tkeys = array_keys(array_column($tagDataArray, 'devmac'), $currentTag['devmac']);
    $tempArray = array();
    for($k=0; $k < count($tkeys); $k++){
        array_push($tempArray, $tagDataArray[$tkeys[$k]]);
    }

//Then I sort that temporary array so one of the values in the row is the highest:

    foreach($tempArray as $sigkey => $sigrow) { 
        $sigsort[$sigkey] = $sigrow['devrssi']; 
    }
    array_multisort($sigsort, SORT_DESC, $tempArray);
    updateArticles($tempArray[0]);
}
while($currentTag=pg_fetch_assoc($tagList)){
$tkeys=array_key(array_列($tagDataArray,'devmac'),$currentTag['devmac']);
$tempArray=array();
对于($k=0;$k$sigrow){
$sigsort[$sigkey]=$sigrow['devrssi'];
}
数组_multisort($sigsort,SORT_DESC,$tempArray);
updateArticles($tempArray[0]);
}
现在问题来自临时数组。对于第一个ID,我有4个结果,第二个有4个,第三个有3个,但是对于第三个ID,尽管我使用每个while循环过程(每个ID)重新初始化了数组,但我还是在数组中得到了4个项。第二个ID的第四个结果将作为第三个ID的第四个结果

这怎么可能?几个小时来我一直在想这个问题,但我没有取得任何进展。$tkeys在第三个ID上给了我3,所以for循环运行了3次,一切都是有意义的,直到数组推到某个东西决定停留的地方。我甚至在tempArray中添加了一个print\r,在第三次运行之前,它是空的!我不知道它会一直爬回来


谢谢。

请确保在后续循环中处理数据时,删除所有以前的数据

$sigsort= [];
foreach($tempArray as $sigkey => $sigrow) { 
    $sigsort[$sigkey] = $sigrow['devrssi']; 
}

我还想提一下,我的上一篇文章有一个问题,所以如果它看起来很熟悉,我道歉!从你的解释中我不清楚你的最终目标是什么?所需的输出是什么?能否在您的问题中添加一些var_dump输出?此外,你能解释一下你想要实现什么吗?你得到了什么?你想要的是什么?当然!给我一点时间。我会写一个详细的var_转储页面并发布pastebin?如此简单的答案。。。非常感谢你!天哪,我觉得自己太笨了,我喜欢简单的答案。每个人都会犯错误,只要从中吸取教训,然后继续前进:)
$sigsort= [];
foreach($tempArray as $sigkey => $sigrow) { 
    $sigsort[$sigkey] = $sigrow['devrssi']; 
}