• Sorular
  • Etiketler

Çok boyutlu bir dizi yeniden sıralayın?

2 Cevap php

Ben ortalama derece azalan bunu yeniden düzenlemek için aşağıdaki dizi ihtiyacı var. İşte bir pasajı. Bunu hakkında gitmek nasıl herhangi bir fikir?

Teşekkürler

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => 
            [rating] => 0
        )

    [1] => Array
        (
            [id] => 2
            [name] => 
            [rating] => 2
        )
)

2 Cevap

Sen usort() Bu için kullanabilirsiniz.

usort($arr, 'by_rating');

function by_rating($a, $b) {
  if ($a['rating'] == $b['rating']) {
    return 0;
  } else {
    return $a['rating'] < $b['rating'] ? -1 : 1;
  }
}

Veya tersten:

function by_rating($a, $b) {
  if ($a['rating'] == $b['rating']) {
    return 0;
  } else {
    return $a['rating'] < $b['rating'] ? 1 : -1;
  }
}
0

Kullanım PHP'nin usort() fonksiyonu. Sen 2 girişli denir kendi geri çağırma işlevi sağlayabilmektedir. Eğer işlevinde ne gibi karşılaştırma yapmak ve en iyi vb olduğunu düşünüyorum hangisi değeri dönebilirsiniz:

function myComparison($val1, $val2)
{
  if ($val1["rating"] == $val2["rating"])
  {
    return 0;
  }
  return ($val1["rating"] < $val2["rating"]) ? -1 : 1;  
}

usort($inputArray, "myComparison");

(Sizin sonuç yukarıda belirtilen için kabul PHP sitesinden örnek).

0

etiketler

  • php
  • arrays
  • Sorular
  • Etiketler
Copyright © 2014

Powered by EvrenWeb Int. Media.