php使用变量排序举例,使用$percent变量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");

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 var.我该怎么办.

这就是现在显示的样子.我希望将400%提高到最高.

解决方法:

您可以使用PHP usort()订购结果

$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得分

标签:foreach,sql-order-by,php

来源: https://codeday.me/bug/20191120/2047649.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值