array içerisindeki filtreleme yapma
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
)
)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
$array = []; // tüm konular
$sabit = array_filter($array, function($value, $key){
return $value['sabit'] == 1;
},ARRAY_FILTER_USE_BOTH);
print_r($sabit);
@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.
@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.