Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysqli对象搜索和排序_Php_Arrays_Search_Object_Mysqli - Fatal编程技术网

php mysqli对象搜索和排序

php mysqli对象搜索和排序,php,arrays,search,object,mysqli,Php,Arrays,Search,Object,Mysqli,使用PHP5.3和mysqli,我从一个只有用户名的查询返回一个结果集,比如 $query_username = "SELECT username FROM some_table WHERE param = 1"; $username = $mysqliObject->query($query_username); while($row_username = $username->fetch_object()){ print "<br>Username: $row_u

使用PHP5.3和mysqli,我从一个只有用户名的查询返回一个结果集,比如

$query_username = "SELECT username FROM some_table WHERE param = 1";
$username =  $mysqliObject->query($query_username);

while($row_username = $username->fetch_object()){
print "<br>Username: $row_username->username";
}
$query\u username=“从一些参数为1的表中选择用户名”;
$username=$mysqlioobject->query($query\u username);
而($row\u username=$username->fetch\u object()){
打印“
用户名:$row\u用户名->用户名”; }
很好,但这是我的问题,有重复的用户名,我不知道前面的查询中会出现哪些名称,可能是bob、sue、james。或者是汤姆,迪克,哈利,汤姆。我需要做的是打印出每个用户名以及它在这个对象中出现的次数。出于非常奇怪的原因,我不能在查询中使用诸如group by和count(*)之类的简洁的东西(不要问,这真的很奇怪)。所以我的问题是,通过返回对象(或关联数组,如果需要)循环获取每个唯一名称的最快方法是什么,以及它出现了多少次。谢谢你的帮助,如果这是一个大一新生的CS问题,我道歉,我自学成才,总是填补空白

例如

$users = array();
while( false!==($row=$result->fetch_array()) ){
    if ( isset($users[$row['username']]) ) {
        $users[$row['username']] += 1;
    }
    else {
        $users[$row['username']] = 1;
    }
}
asort($users);

如果您确实必须在PHP端执行,而不是使用
GROUP BY
子句:

while($row_username = $username->fetch_object())
{
    if(isset($usernames[$row_username['username']]))
    {
        $usernames[$row_username['username']]++;
    }
    else
    {
        $usernames[$row_username['username']] = 1;
    }
}

asort($usernames);
// use ksort() to sort by username instead of the count

// print out the usernames
foreach($usernames as $username => $count)
{
    echo $username . ", count: " . $count;
}

太好了,太棒了!对于您的示例,我唯一的意见是使用fetch_array()而不是fetch_object()。谢谢,不仅是因为代码,而且还有关于数组的教育!