lostyazilim

Array içerisindeki en küçük değer

9 Mesajlar 1.412 Okunma
lstbozum
wmaraci reklam

viper302 viper302 WM Aracı Kullanıcı
  • Üyelik 09.08.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Siber Güvenlik Danışmanı
  • Konum İstanbul Anadolu
  • Ad Soyad K** A**
  • Mesajlar 294
  • Beğeniler 19 / 26
  • Ticaret 3, (%100)
Merhaba arkadaşlar, bir kaç tane uzak siteden fiyat bilgisi çekiyorum ve bunları array içerisine atıyorum. Yapmak istediğim şey array'ın içerisindeki en ucuz fiyat bilgisini çekmek. Normalde MIN() ile çekiliyor biliyorum ama sorunum array'ın birden fazla hücresi var.

$Bilgi["YAYINCI"]
$Bilgi["FIYAT"]
$Bilgi["URL"]


şeklinde düşünün yapmak istediğim en ucuz fiyatlı veriyi komple çekmek istiyorum. Sanki MYSQL'den SELECT sorgusunda en küçük fiyatlı veriyi çekmek gibi düşünün ama PHP array'de yapacağım bu işlemi. Acaba nasıl yapabilirim?
 

 

wmaraci
reklam

nGinY nGinY PHP - C# Help Kit =) Kullanıcı
  • Üyelik 07.06.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Eskişehir
  • Ad Soyad E** Y**
  • Mesajlar 80
  • Beğeniler 7 / 17
  • Ticaret 3, (%100)
Not : Aceleye geldi tam yazamadım çıkmam gerekli inşallah bu şekilde birşey istemişsinizdir.
2 Yapı var.
1) Normal bir arraydan gelen verilerden minimun bulmak.
2) Veritabanından tüm çekilen verilerin fiyatlarını arrray aktarıp minimum değere ulaşmak.
Ben yazılanlardan bu şekilde anladım. Eğer daha farklıysa geldiğimde yardımcı olmaya çalışırım.
Ekran Çıktısı:


Resim gözükmüyorsa Link : https://prnt.sc/igcx3m

Veritabanı Yapısı:


Resim gözükmüyorsa Link : https://prnt.sc/igcxcr
Tüm kodlar:

echo "Normal Bir Array sıralamak";
$Bilgi = array(

'Kalem' => 10,
'Kağıt' => 2,
'Silgi' => 5,
'Defter' => 8,
'Ataç' => 3,
'A4' => 25,
);
echo "Tüm Array
";
print_r($Bilgi);
echo "
";


echo "Arraydan Veri Çekme";
$val = min($Bilgi);
echo "En Küçük Değer" . $val . "
";

echo "
";

// Veri Tabanı Bağlantısı İşlemleri
try {



$db=new PDO("mysql:host=localhost;dbname=test;charset=utf8",'root','12345678');

//echo "veritabanı bağlantısı başarılı";

}



catch (PDOExpception $e) {



echo $e->getMessage();

}

// Veritabanı Bağlantısı Son


echo "Veritabanından gelen verileri array aktarıp sıralamak
";

$testsor=$db->prepare("SELECT * FROM urunler ");
$testsor->execute();


while ($testcek=$testsor->fetch(PDO::FETCH_ASSOC)) {

echo $testcek['urun_yayinci'] . " - ". $testcek["urun_fiyat"] ." - ". $testcek["urun_url"] . "
";
$Bilgiler[] = $testcek["urun_fiyat"]; // Burada diziye atadık

}
echo "Üstte veritabanındaki tüm ürünler listelenmektedir.
";
$val = min($Bilgiler);
echo $val . " - En Ucuz";
?>
viper302

kişi bu mesajı beğendi.

-----

viper302 viper302 WM Aracı Kullanıcı
  • Üyelik 09.08.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Siber Güvenlik Danışmanı
  • Konum İstanbul Anadolu
  • Ad Soyad K** A**
  • Mesajlar 294
  • Beğeniler 19 / 26
  • Ticaret 3, (%100)
Teşekkürler cevabınız için. Veritabanından bilgi çekmeyeceğim. Söylediğiniz şekilde sadece en küçük değeri alabiliyoruz. Stackoverflow sitesinde adamlar en küçük değerin index'ini almışlar o indexle en küçük değeri çekmişler. Bende şimdi o şekilde düzeltiyorum kodları. Yani en küçük değere sahip array'ın index'ini alıp o satırı komple çekeceğim.
 

 

nGinY nGinY PHP - C# Help Kit =) Kullanıcı
  • Üyelik 07.06.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Eskişehir
  • Ad Soyad E** Y**
  • Mesajlar 80
  • Beğeniler 7 / 17
  • Ticaret 3, (%100)
Üstte paylaştığım kodlar düzenlenerek dediginiz işlem yapılabilir dediğim gibi acil çıkmam gerektiği için tam detaylı cevaplandiramadim ama bir cozun bulamazsanız eğer döndüğümde düzenleyebilirim
 

 

-----
wmaraci
wmaraci

viper302 viper302 WM Aracı Kullanıcı
  • Üyelik 09.08.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Siber Güvenlik Danışmanı
  • Konum İstanbul Anadolu
  • Ad Soyad K** A**
  • Mesajlar 294
  • Beğeniler 19 / 26
  • Ticaret 3, (%100)
Teşekkürler cevabınız için. Sorunumu şimdi çözdüm.
 

 

BarisYILMAZ BarisYILMAZ WM Seo Tool Kullanıcı
  • Üyelik 09.04.2015
  • Yaş/Cinsiyet 41 / E
  • Meslek Bilgisayar Teknik Servis
  • Konum İstanbul Avrupa
  • Ad Soyad B** Y**
  • Mesajlar 394
  • Beğeniler 207 / 132
  • Ticaret 5, (%100)
viper302 Pek php den anlamam genelde masaüstü yazıyorum,sanırım istediğiniz şey şu olsa gerek
https://stackoverflow.com/a/5846808
$input[0] değişkeninin sıfırıncı elemanını belirtiyor yani arrayler 0 dan başlar...
Bir yerden veri alırken başarılı bir sonuç elde etmek istiyorsanız dizileri 0 dan başlayarak çekin ve bunu çekerken foreach($input döngüsüyle çekmiş.
 

 

viper302 viper302 WM Aracı Kullanıcı
  • Üyelik 09.08.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Siber Güvenlik Danışmanı
  • Konum İstanbul Anadolu
  • Ad Soyad K** A**
  • Mesajlar 294
  • Beğeniler 19 / 26
  • Ticaret 3, (%100)
Teşekkürler cevabınız için, yanlış anlamışsınız ama çözdüm sorunu. Benim sorunum array içerisinde fiyatlar vardı ben küçük olan fiyatı çekmek istiyordum. Çözümü en küçük değerin index'ini aldım daha sonra

$Bilgi[$index]["YAYINCI"]
$Bilgi[$index]["FIYAT"]
$Bilgi[$index]["URL"]

şeklinde verinin tamamını çektim.
 

 

viper302 viper302 WM Aracı Kullanıcı
  • Üyelik 09.08.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Siber Güvenlik Danışmanı
  • Konum İstanbul Anadolu
  • Ad Soyad K** A**
  • Mesajlar 294
  • Beğeniler 19 / 26
  • Ticaret 3, (%100)
Arkadaşlar olmamış ya, ben değerleri alıyor sanıyordum ama hep 0 ıncı indexi alıyormuş veriler değiştiği için bende düzgün alıyor sanıyorum.


$Veri[0]["SiteLogo"] = "***";
$Veri[0]["Fiyat"] = $Fiyat;
$Veri[0]["URL"] = $URL;
$Veri[1]["SiteLogo"] = "***";
$Veri[1]["Fiyat"] = $Fiyat2;
$Veri[1]["URL"] = $URL2;


arkadaşlar böyle arraya veri eklendiğini düşünün.


$numbers = array_column($Veri, 'Fiyat');
$min = min($numbers);
$index = array_search($min, array_column($Veri, 'Fiyat'));


yukarıdaki alana $index değişkenine en ucuz fiyatın index değerinin gelmesini istiyorum ama veri hep 0 dönüyor. İstediğim şey kısaca $Veri arrayının içerisindeki Fiyat kolonunun en küçük değerini bulup ilgili ana arrayın indexini alıcam sonrası kolay.
 

 

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)
Foreach ile saydır yeni arraya at yeni arraydan if ile devamını getirebilirsin.

Tam bilmiyorum ama umarım yardımcı olur.
 

 

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.
wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al