Bir, iki, üç boyutlu bir dizide değerlerin en bulma ve işaretleme

1 Cevap php

Ben ofis için bir ekran üzerinde çalışıyorum, ve ben bir iki boyutlu bir dizide veri kümesindeki en büyük sayısal değeri bulmak için iyi bir yol düşünmek için görünmüyor olabilir. I max () kullanarak baktım ve ayrıca asort () ama bir iki boyutlu bir dizi ile başa çıkmak için görünmüyor.

Ben mysql sınıfı aracılığıyla benim veri dönüyorum, yani satırlar iki boyutlu bir dizi döndürülür.

Array(
 [0] => Array(
  [am] => 12,
  [sales] => 981),
 [1] => Array(
  [am] => 43,
  [sales] => 1012),
 [2] => Array(
  [am] => 17,
  [sales] => 876)
)

Yüksek satış değerine sahip AM benim tablodaki verileri foreaching zaman çıkış için bir sınıf gerekir. Ifadeleri eğer> hepsini karşılaştırarak kısa. Ben dizide max () almak için çalıştık, ama bu boyut içinde bakmak var gibi, bir dizi döndürür. Belirli bir boyutta bunu işaret zaman anahtarı değil değer döndürür.

Ben () dizi asort ve üst değer kapalı pop, bir değişkende saklamak ve daha sonra) döngü (benim foreachta buna karşı karşılaştırabilirsiniz düşündüm, ama bu iki boyutta sıralama sorun var gibi görünüyor.

Son olarak, ben bir önceki karşı her zaman onları karşılaştırarak, () değerleri foreach ki düşündüm, e kadar ben büyük buldum. Ancak bu yaklaşım, her değer, neyse ki sadece üç saklamak anlamına gelir, ama sonra tekrar hepsine karşı karşılaştırarak.

Şüphesiz bu konuda) daha sonra (bir asort yapıyor, bir tek boyutlu dizi haline dönüştürme kısa Bunu başarmak için basit bir yolu, olmalı?

1 Cevap

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

usort($array, 'customSort');
?>

Ben ne yapardınız