在PHP中按两个特定值对数组进行排序

Rog*_*ger 0 php

人们已经向我展示了如何使用PHP中的usort和回退函数按特定值对数组进行排序.

如果此特定值不存在并且我们必须使用两个值,该怎么办?在示例中,下面是值[4]和[5] ...换句话说,我想这样做:按照每个对象的fith值从最高到最低,所有对象进行数值排序,对于这些对象,按顺序排列如果fifht值为空(在示例' - '中),请按第四个值排序.

Array(

 [0] => Array(
  [0] => links-patrocinados
  [1] => adwords
  [2] => 0,5
  [3] => R$92,34
  [4] => 823000
  [5] => 49500
 )
 [1] => Array(
  [0] => adwords
  [1] => google adwords como funciona
  [2] => 0,38
  [3] => R$0,20
  [4] => 480
  [5] => 480
 )
 [2] => Array(
  [0] => links-patrocinados
  [1] => adword
  [2] => 0,39
  [3] => R$58,77
  [4] => 49500
  [5] => 2900
 )
 [3] => Array(
     [0] => agencia
     [1] => agencias viagens espanholas
     [2] => -
     [3] => R$0,20
     [4] => 58
     [5] => -
 )
 [4] => Array(
     [0] => agencia
     [1] => era agencia imobiliaria
     [2] => -
     [3] => R$0,20
     [4] => 73
     [5] => -
 )

)
Run Code Online (Sandbox Code Playgroud)

Kyl*_*ild 5

// $myArray = your array of associative arrays, above
function compare($x, $y)
{
    if ( $x[5] == $y[5] ) {
        return 0;
    }
    else if ( $x[5] < $y[5] ) {
        return -1;
    }
    else {
        return 1;
    } 
}

usort($myArray, 'compare');
Run Code Online (Sandbox Code Playgroud)

  • `usort($ myArray,function($ x,$ y){return $ x [5] - $ y [5];});` (2认同)