Ben php.net ve burada etrafa sonra, ben o zaman usort üzerinden arayabilecek bir işlevi yazmak gerektiğini olsun, çok boyutlu bir nesneyi sıralamak için çalışıyorum ve. Ben sözdizimi ile bazı sorun yaşıyorum. Ben hiç daha önce karmaşık bir şey yazılır, ve onu anlamaya çalışıyorum bir Mindbender gibi hissediyor değil ...
Ben bu yazının sonunda yayınlanan dizi ile çalışıyorum. Ben yinelenen [n] değerleri filtrelemek istiyorum. Fakat, ve bu benim için, ben küçük [d] değere sahiptir [n] değerini tutmak istiyorum zor bir parçasıdır.
Ben var ise, (ve bu basitleştirilmiş bir örnektir, gerçek dizi, bu yazının sonunda):
Array (
[7777] => Array
( [0] => Array
( [n] => '12345' [d] => 1 )
[1] => Array
( [n] => '67890' [d] => 4 )
)
[8888] => Array
( [2] => Array
( [n] => '12345' [d] => 10 )
[3] => Array
( [n] => '67890' [d] => 2 )
)
)
Ben bu kadar rüzgar böylece ben, [d] değerine göre yinelenen [n] değerleri filtrelemek istiyorum:
Array (
[7777] => Array
( [0] => Array
( [n] => '12345' [d] => 1 )
)
[8888] => Array
[3] => Array
( [n] => '67890' [d] => 2 )
)
)
Ben php.net yayınlanan fonksiyon cmp örneğin farklı varyasyonlarını yazma denedim, ama ben iş için herhangi almak mümkün olmamıştır, ve ben onların örneğini kullanarak çapraz nasıl tamamen açık değilim çünkü düşünüyorum ...
Denedim:
function cmp($a, $b)
{
if($a['n'] == $b['n'])
{
if($a['d'] == $b['d'])
{
return 0;
}
}
return ($a['n'] < $b['n']) ? -1 : 1;
}
Ama, gerçekten hiç işe yaramadı ki ... Neyse, işte ben Yardım ... ile çalışmak için çalışıyorum gerçek dizisi büyük beğeni topluyor var!
Array
(
[32112] => Array
(
[0] => Array
(
[n] => '02124'
[d] => '0'
)
[1] => Array
(
[n] => '02124'
[d] => '0.240101905123744'
)
[2] => Array
(
[n] => '11050'
[d] => '0.441758632682761'
)
[3] => Array
(
[n] => '02186'
[d] => '0.317514080260304'
)
)
[43434] => Array
(
[4] => Array
(
[n] => '02124'
[d] => '5.89936971664429e-05'
)
[5] => Array
(
[n] => '02124'
[d] => '0.145859264792549'
)
[6] => Array
(
[n] => '11050'
[d] => '0.327864593457739'
)
[7] => Array
(
[n] => '11050'
[d] => '0.312135345168295'
)
)
)