v2.5.2
Giriş yap

Belirli bi sayı ile başlayanları sıralama

webdevyusuf
565 defa görüntülendi
<?php
// Veritabanından gelen dizi
$arr = array(
    99000123,
    99000124,
    99000125,
    99000126,
    99000127,
    99000128,
    99000129,
    93000119,
    93000159
);

// Ben burda 93 ile başlayanları alıp bide büyükten küçüğe sıralama yapmak istiyorum nasıl yapabilirim
?>
Cevap yaz
Cevaplar (8)
batuhan1915
1183 gün önce

function customArray($array /* Dize */,$howDo /* eşlecek veri ilk 2 harf */,$ex = "equal" /* Karşılaştırma İçin Farklı Türler {equal,equal_big,equal_small,small,big} */)
{
	$c = 0;
	$new;
	$ex = strtolower($ex);
	foreach ($array as $key => $deger) {
		if ($ex == "equal"){
			if(substr($array[$key], 0,2) == $howDo){
				$new[$c] = $deger;
				$c = $c+1;
			}
		}elseif($ex == "equal_big") {
			if(substr($array[$key], 0,2) >= $howDo){
				$new[$c] = $deger;
				$c = $c+1;
			}
		}elseif($ex == "equal_small") {
			if(substr($array[$key], 0,2) <= $howDo){
				$new[$c] = $deger;
				$c = $c+1;
			}
		}elseif ($ex == "small") {
			if(substr($array[$key], 0,2) < $howDo){
				$new[$c] = $deger;
				$c = $c+1;
			}
		}elseif ($ex == "big") {
			if(substr($array[$key], 0,2) > $howDo){
				$new[$c] = $deger;
				$c = $c+1;
			}
		}
	}
	return $new;
}

Kolaylık Olsun Diye Fonksiyon Tanımladım Buyur.

batuhan1915
1183 gün önce

sanırım böyle bir fonksiyon yok

webdevyusuf
1183 gün önce

Evet bende buna benzer yaptım sonra ama asıl merak ettiğim bununla alakalı bir php fonksiyonu var mı diye.

batuhan1915
1183 gün önce

biraz saçma bir çözüm olabilir ama çalışıyor eger 93 ile başlayıp digerlerinide almak isterseniz >= yapabilirsiniz koşulu

batuhan1915
1183 gün önce

    //verimizin başlangıcı ilk 2 harf
    $start = 93;
	$new;
	// yeni arrayımız
	$c = 0;
	//yeni array key başlangıc
	foreach ($arr as $key => $deger) {
	//substr ile ilk 2 harfi alıyoruz
		if(substr($arr[$key], 0,2) == $start /* başlayanları alıyoruz */){
			$new[$c] = $deger;
			//yeni arrayımıza atıyoruz bu verileri
			$c = $c+1;
			//array keyimizi 1 artırıyoruz
		}
	}
	sort($new);
	//kücükten büyüge
	print_r($new);
	

webdevyusuf
1183 gün önce

Bide sadece başı 93 olanları ayrı bir diziye atmak istiyorum o nasıl olacak?

batuhan1915
1183 gün önce

başka birşey mi arıyorsun yoksa

batuhan1915
1183 gün önce
$arr = array(

99000123,
99000124,
99000125,
99000126,
99000127,
99000128,
99000129,
93000119,
93000159
);
//küçükten büyüge sıraladık tam tersi için rsort()
sort($arr);