gpt4 book ai didi

php - 使用 $percent 变量 php 对数组结果进行排序

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:07 24 4
gpt4 key购买 nike

这是我的数组:

$mygetting_id = $wpdb->get_results("SELECT DISTINCT post_id,meta_value from wp_postmeta Where meta_value  LIKE '".$search_res[$k]."%' OR meta_value  LIKE '%".$search_res[$k]."%'  AND meta_key='my_profile_tags' ORDER BY post_id $limit");

foreach ( $mygetting_id as $post )
{
$id = $post->post_id;

$metaValue= esc_attr(get_post_meta($id, 'my_profile_tags',true));
$array_metaValue = explode(',',$metaValue);
$array_metaValue = array_map('strtolower', $array_metaValue);
$total_tags=count($array_metaValue);//like total=10

for($e=0;$e<=count($search_res);$e++)
{
$key = count( array_intersect( $array_metaValue, array_map('strtolower', $search_res ) ) );
}

// Get Percentage of each array result.
$percent=($key/$search_count)*100;
$percent=round($percent,0);
?>

//html part
} // for each close

现在我想ORDER BY 或根据$percent 变量显示我的结果,然后显示结果。我不能在我的 SQL 语句中使用 $percent 变量。我该怎么办。

这是它现在的显示方式。我想要 400% 到顶部。 enter image description here

最佳答案

您可以使用 PHP 对结果进行排序 usort()

     <?php

$mygetting_id = $wpdb->get_results("SELECT DISTINCT post_id,meta_value from wp_postmeta Where meta_value LIKE '".$search_res[$k]."%' OR meta_value LIKE '%".$search_res[$k]."%' AND meta_key='my_profile_tags' ORDER BY post_id $limit");

$sortedResults = array();

foreach ( $mygetting_id as $post )
{
$id = $post->post_id;

$metaValue= esc_attr(get_post_meta($id, 'my_profile_tags',true));
$array_metaValue = explode(',',$metaValue);
$array_metaValue = array_map('strtolower', $array_metaValue);
$total_tags=count($array_metaValue);//like total=10

for($e=0;$e<=count($search_res);$e++)
{
$key = count( array_intersect( $array_metaValue, array_map('strtolower', $search_res ) ) );
}

// Get Percentage of each array result.
$percent=($key/$search_count)*100;
$percent=round($percent,0);

// adding percent property to use it in usort
$post->percent = $percent;

$sortedResults[] = $post;
}

// sorting results
usort($sortedResults, function($a, $b){
// in case if they are equal
if($a == $b) return 0;
return $a->percent < $b->percent ? 1 : -1;
});
/// now your results are sorted do html part
foreach($sortedResults as $post){
// do your html here e.g
echo $post->id;
echo $post->percent . '%'; // etc
}

?>

或者您可以将百分比作为单独的字段存储在表中,只存储ORDER BY分数

关于php - 使用 $percent 变量 php 对数组结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com