【发布时间】:2015-01-30 18:22:43
【问题描述】:
我正在开发一个小的 PHP 函数,该函数将根据项目是否返回 isVerified 对数组进行排序。如果确实经过验证,我希望将这些结果显示在列表顶部。我承认我对 PHP 不是最熟悉的,而且我一直在做大量的阅读,因为我认为可能有一种方法可以让这变得更容易。阅读它听起来像 uasort() 是我需要它的排序能力并且它维护索引关联,但我对如何正确使用它有点困惑。我正在处理的原始 PHP 块如下所示:
<?php
if (count($results)):
$lexisIndex = 1;
foreach ($results as $person){
$person->isVerified = (substr($person->first_name, 0, 1) == substr($fname, 0, 1) && $person->last_name == $lname );
$person->lexisIndex = $lexisIndex++;
}
foreach ($results as $person):
?>
从这里我将$results 放入一个数组并将其传递给一个uasort 函数。添加我认为需要的代码后,代码如下所示:
<?php
if (count($results)):
$lexisIndex = 1;
foreach ($results as $person){
$person->isVerified = (substr($person->first_name, 0, 1) == substr($fname, 0, 1) && $person->last_name == $lname );
$person->lexisIndex = $lexisIndex++;
}
$array = array($results);
uasort($array, function($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b ? -1 : 1);
});
foreach ($results as $person):
?>
这对我仍然不起作用,也没有抛出任何错误,所以我花了很长时间试图解决这个问题。我的使用方法是否正确?或者这可以以更有效的方式完成吗?如果这听起来像是以前提出过的问题,我深表歉意,但我在四处搜索时找不到解决方法。如果这是重复的,我很乐意单击链接并进行更多阅读。感谢您的时间和帮助。
【问题讨论】: