[英]How to add a “sort by” field to mysqli array in php code and then sort by it descending?
我有一个 mysql 查询的结果,我想添加一个新字段并填充一个我想排序的计算值,我是新添加字段到 arrays 和排序 ZA3CBC3F9D6C2F2C19CZE1 所以任何帮助不胜感激,谢谢。
$keyArray = explode(" ", $keyPhrase);
$result = $mysqli->query($queryString);
while($row = $result->fetch_array()){
$rows[] = $row;
}
foreach($rows as $row){
$bodyData = $row["bodydata"];
$totalKeys = 0;
foreach($keyArray as $value){
$keyCount = substr_count($bodyData, $value);
$totalKeys = $totalKeys + $keyCount;
}
// Here I'd like to add new field to $rows[]
// with $totalKeys value then sort by it desc after the this loop
}
}
我让它像这样工作:
foreach($rows as &$row){
$bodyData = $row["bodydata"];
$totalKeys = 0;
foreach($keyArray as $value){
$keyCount = substr_count($bodyData, $value);
$totalKeys = $totalKeys + $keyCount;
}
$row["sortcount"] = $totalKeys;
}
$rows = array_sort($rows, "sortcount", SORT_DESC);
function array_sort($array, $on, $order=SORT_ASC)
{
$new_array = array();
$sortable_array = array();
if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}
switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}
foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}
return $new_array;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.