第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

按可選列對(duì)加密數(shù)據(jù)進(jìn)行排序(表格排序)

按可選列對(duì)加密數(shù)據(jù)進(jìn)行排序(表格排序)

PHP
繁華開(kāi)滿天機(jī) 2022-07-22 16:06:25
有點(diǎn)掙扎以處理按列名對(duì)表進(jìn)行排序。問(wèn)題是數(shù)據(jù)已加密,因此不能僅按所需方向(升序降序)按列進(jìn)行排序。所以我想我可以使用 usort 但是雖然我可以用它調(diào)用一個(gè)函數(shù),即usort( $data, "sortMyData" );我不能傳遞字段來(lái)排序或者它的方向。所以要做到這一點(diǎn),我需要編寫(xiě)一個(gè)函數(shù)來(lái)對(duì)每個(gè)可能的列進(jìn)行排序,這根本不理想,有沒(méi)有人知道一種方法,例如我可以向 usort 添加另一個(gè)參數(shù),該參數(shù)將包含它的排序?qū)傩院头较?。也許另一種方法是將整個(gè)數(shù)據(jù)集解密到某個(gè)內(nèi)存表中,但是由于數(shù)據(jù)是加密且安全的,我想知道這是否會(huì)為漏洞打開(kāi)道路!我的最后一個(gè)選擇是將其構(gòu)建到一個(gè) foreach 循環(huán)中,我認(rèn)為這是有道理的,但這是唯一的方法嗎?
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

我無(wú)法通過(guò)該字段進(jìn)行排序或它的方向。


事實(shí)上,你可以。有一個(gè)例子:


<?php

  // Example data

  $data = array(

    array('name' => 'Gamma',  'val' => 25),

    array('name' => 'Beta',  'val' => 5),

    array('name' => 'Alpha', 'val' => 10)

  );



  function sortme(&$array, $onfield, $isdesc) {

     usort($array, 

           function($a, $b) use ($onfield, $isdesc) { // 'use' keyword allows to reference external variables from the inside

              // custom method to obtain and comapre data;

              $v1 = isset($a[$onfield]) ? $a[$onfield] : NULL; 

              $v2 = isset($b[$onfield]) ? $b[$onfield] : NULL;


              if ($v1 < $v2) return ($isdesc ? 1 : -1);

              elseif ($v1 > $v2) return ($isdesc ? -1 : 1);

              else return 0; 

              // Note: the conditions above can be replaced by spaceship operator in PHP 7+:

              // return $isdesc ? ($v2 <=> $v1) : ($v1 <=> $v2) ;

           }

          );

  }



  sortme($data, 'name', false); // sort by `name` ascending

  print_r($data); // Alpha -> Beta -> Gamma


  sortme($data, 'val', true); // sort by `val` descending

  print_r($data); // 25 -> 10 -> 5


查看完整回答
反對(duì) 回復(fù) 2022-07-22
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

它提供了一個(gè)將額外參數(shù)傳遞給 usrot 函數(shù)的示例。


function sort_by_term_meta( $terms, $meta ) 

{

    usort($terms, array(new TermMetaCmpClosure($meta), "call"));

}


function term_meta_cmp( $a, $b, $meta )

{

    $name_a = get_term_meta($a->term_id, $meta, true);

    $name_b = get_term_meta($b->term_id, $meta, true);

    return strcmp($name_a, $name_b); 


class TermMetaCmpClosure

{

    private $meta;


    function __construct( $meta ) {

        $this->meta = $meta;

    }


    function call( $a, $b ) {

        return term_meta_cmp($a, $b, $this->meta);

    }

}

基本上您需要?jiǎng)?chuàng)建一個(gè)類(lèi)函數(shù)來(lái)進(jìn)行排序,并且您可以在構(gòu)造類(lèi)時(shí)傳遞其他參數(shù)(列,方向)。


查看完整回答
反對(duì) 回復(fù) 2022-07-22
  • 2 回答
  • 0 關(guān)注
  • 196 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)