Php Yardım - Çok Boyutlu Dizilerin Karşılaştırılması
-
Kafa bir yerden sonra basmıyor, yardımcı olursanız sevinirim.
Şöyle bir dizi var:Array ( [0] => Array ( [id] => 9685 [magaza] => Gold [isim] => Acer AO725-C7SBB Netbook [fiyat] => 649.00 [tarih] => 12-06-2013 ) [1] => Array ( [id] => 10656 [magaza] => PC Depo [isim] => Acer AO725-C7SBB Netbook [fiyat] => 549.81 [tarih] => 12-06-2013 ) [2] => Array ( [id] => 15998 [magaza] => PC Depo [isim] => Acer AO725-C7SBB Netbook [fiyat] => 537.89 [tarih] => 13-06-2013 ) [3] => Array ( [id] => 19000 [magaza] => Gold [isim] => Acer AO725-C7SBB Netbook [fiyat] => 599.00 [tarih] => 14-06-2013 ) )Yapmak istediğim:
Tarihi aynı olanlardan fiyatı küçük olanı almak.
Çıktı şu şekilde olmalı:Array ( [0] => Array ( [id] => 10656 [magaza] => PC Depo [isim] => Acer AO725-C7SBB Netbook [fiyat] => 549.81 [tarih] => 12-06-2013 ) [1] => Array ( [id] => 15998 [magaza] => PC Depo [isim] => Acer AO725-C7SBB Netbook [fiyat] => 537.89 [tarih] => 13-06-2013 ) [2] => Array ( [id] => 19000 [magaza] => Gold [isim] => Acer AO725-C7SBB Netbook [fiyat] => 599.00 [tarih] => 14-06-2013 ) ) -
Çözümü bulunca yazmak için burası da benim olsun.
array_unique fonksiyonu aynı içerikleri siliyor ama fiyata göre ayarlamayı henüz beceremedim.
-
Tarihi aynı olanlar değilde ismi aynı olanlar galiba dimi hocam ?
-
<?php $arr = array( array('id' => 9685, 'magaza' => "Gold", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 649.00, 'tarih' => "12-06-2013"), array('id' => 10656, 'magaza' => "PC Depo", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 549.81, 'tarih' => "12-06-2013"), array('id' => 15998, 'magaza' => "PC Depo", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 537.89, 'tarih' => "13-06-2013"), array('id' => 19000, 'magaza' => "Gold", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 599.00, 'tarih' => "14-06-2013"), ); $arr2 = array(); for($x = 12; $x <= 14; $x++){ for($i = 0; $i < count($arr); $i++){ if ($arr[$i]['tarih'] == $x.'-06-2013'){ array_push($arr2, $arr[$i]); } } rsort($arr2); var_dump($arr2[0]); } ?> -
<?php $arr = array( array('id' => 9685, 'magaza' => "Gold", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 649.00, 'tarih' => "12-06-2013"), array('id' => 10656, 'magaza' => "PC Depo", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 549.81, 'tarih' => "12-06-2013"), array('id' => 15998, 'magaza' => "PC Depo", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 537.89, 'tarih' => "13-06-2013"), array('id' => 19000, 'magaza' => "Gold", 'isim' => "Acer AO725-C7SBB Netbook", 'fiyat' => 599.00, 'tarih' => "14-06-2013"), ); $tarihler=array(); foreach($arr as $x){ $temp[$x["tarih"]][]=$x; if(empty($fiyat[$x["tarih"]])){ $fiyat[$x["tarih"]]=array(); array_push($tarihler,$x["tarih"]); } array_push($fiyat[$x["tarih"]],$x["fiyat"]); } foreach($tarihler as $tarih){ sort($fiyat[$tarih]); } $gosterilecek_urunler=array(); foreach($tarihler as $tarih){ $ucuzfiyat=$fiyat[$tarih][0]; foreach($temp[$tarih] as $urun){ if($urun["fiyat"]==$ucuzfiyat){ array_push($gosterilecek_urunler,$urun); } } } var_dump($gosterilecek_urunler); ?>
sokoban tarafından 18/Haz/13 22:26 tarihinde düzenlenmiştir -
pSkpt ve sokoban çok teşekkür ederim, sayenizde halloldu. :)
EmQceR bunu yazdıTarihi aynı olanlar değilde ismi aynı olanlar galiba dimi hocam ?
Yok hocam, yazdığım gibi; tarihi aynı olanlardan fiyatı düşük olan alınmalı.
Toplam Hit: 849 Toplam Mesaj: 6
