fork download
  1. <?php
  2.  
  3. $deposits = [
  4. 'СБ' =>['RUR'=>['90'=>7.0, '180'=>9.1], 'USD'=>['90'=>3.2, '180' => 5.2]],
  5. 'ВТБ'=>['RUR'=>['90'=>7.2, '180'=>9.2], 'USD'=>['90'=>3.1, '180' => 5.0]],
  6. 'МКБ'=>['RUR'=>['90'=>7.1, '180'=>9.3], 'USD'=>['90'=>3.3, '180' => 5.1]],
  7. ];
  8.  
  9. function compareBy ($currency, $term) {
  10. return function ($bank1, $bank2) use ($currency, $term) {
  11. $value1 = $bank1[$currency][$term];
  12. $value2 = $bank2[$currency][$term];
  13. if ($value1 == $value2)
  14. return 0;
  15. else
  16. return $value1 < $value2 ? -1 : 1;
  17. };
  18. }
  19.  
  20. function printArray ($array, $inline=false) {
  21. $i=0;
  22. foreach ($array as $key=>$value) {
  23. if ($inline && $i++) echo ',';
  24. echo "$key=>";
  25. if (is_array ($value)) { echo '['; printArray ($value, true); echo ']'; }
  26. else echo $value;
  27. if (!$inline) echo PHP_EOL;
  28. }
  29. if (!$inline) echo PHP_EOL;
  30. }
  31.  
  32. uasort ($deposits, compareBy ('RUR', '90')); printArray($deposits);
  33. uasort ($deposits, compareBy ('USD', '180')); printArray($deposits);
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
СБ=>[RUR=>[90=>7,180=>9.1],USD=>[90=>3.2,180=>5.2]]
МКБ=>[RUR=>[90=>7.1,180=>9.3],USD=>[90=>3.3,180=>5.1]]
ВТБ=>[RUR=>[90=>7.2,180=>9.2],USD=>[90=>3.1,180=>5]]

ВТБ=>[RUR=>[90=>7.2,180=>9.2],USD=>[90=>3.1,180=>5]]
МКБ=>[RUR=>[90=>7.1,180=>9.3],USD=>[90=>3.3,180=>5.1]]
СБ=>[RUR=>[90=>7,180=>9.1],USD=>[90=>3.2,180=>5.2]]