v2.5.2
Giriş yap

array içerisindeki filtreleme yapma

webman
444 defa görüntülendi

Bir sayfada 2 bölüm mevcut.

1- tüm konular.
2- sabitlenmiş konular.

Bu iki işlemi 2 farklı sql komutuyla yapiyorum. Yani 2 defa query işlemi oluyor. Benim istediğim 1 sorgu olsun. Çektiğim Değerler içerisinden ben filtreleme yapayım.

Aşağıda tüm konuları çektiğim zaman gelen array. Foreach ile döndürerek sayfada gösteriyorum.
İstediğim = Sabit 1 olanları seçip bu arrayları bastırmak istiyorum.

    Array
(
    [0] => Array
        (
            [id] => 12
            [url] => baslik-1
            [title] => baslik 1
            [sabit] => 1
            
        ),
    [1] => Array
        (
            [id] => 13
            [url] => baslik-2
            [title] => baslik 2
            [sabit] => 0
            
            
        ),
    [2] => Array
        (
            [id] => 4
            [url] => baslik-1
            [title] => baslik 1
            [sabit] => 1
        ) 
)        
        
Cevap yaz
Cevaplar (3)
makifgokce
1111 gün önce
$array = []; // tüm konular
$sabit = array_filter($array, function($value, $key){
	return $value['sabit'] == 1;
},ARRAY_FILTER_USE_BOTH);
print_r($sabit);
makifgokce
1110 gün önce

@0kan87
foreach ile de yapılabilir ama bu şekilde daha az kod yazıp daha temiz kod oluyor bence :)
fonksiyonu parametre olarak girme olayını sormuşsun oda array_filter() fonksiyonunun 2ci paremetresi callback function olduğu için ister dışarıda fonksiyonu yazıp oraya adını girebilirsin veya parametre olarak direk anonim bir fonksiyon yazabilirsin.

0kan87
1110 gün önce

@makifgokce array_filter içerisinde function nasıl kullanılabiliyor şaşırdım bunu bilmiyordum. Ayrıca sabit arrayini foreach icerisinde dondurup sabit 1 esitse sabit 0 a esitse deyip konulari listelemek daha kolay degil mi? Yanlış anlamayın bu konuda benden daha bilgili olduğunuzu düşünerek soruyorum.