v2.5.2
Giriş yap

Sorgudan dönen dizideki verileri süzme

ufukart
622 defa görüntülendi

Merhaba Arkadaşlar.

Elimde aşağıdaki gibi bir tablo var.

AdSoyadTelefonGorev
Ali0532xxxxxxxxMuhasebeci
Veli0533xxxxxxxxMuhtar
Tayfun0534xxxxxxxxYazılımcı
Orhan0535xxxxxxxxMuhtar
Mehmet0536xxxxxxxxAşçı
Efe0537xxxxxxxxMuhasebeci

Uzak sunucu bana her halükarda verinin tümünü dizi olarak veriyor.
Bir sebepten SQL WHERE kullanamam.

$sorgu = "SELECT AdSoyad, Telefon, Gorev FROM tablo WHERE Gorev = 'Muhasebeci'";
SQL

ya da

$sorgu = "SELECT AdSoyad, Telefon, Gorev FROM tablo WHERE Gorev = 'Muhasebeci' or Gorev = 'Muhtar'";
SQL

gibi sorgu yapamam. Bu işleri PHP tarafında yapmak zorundayım.

$sorgu = "SELECT AdSoyad, Telefon, Gorev FROM tablo";
SQL

sorgusundan dönen dizide görevi muhasebeci veya muhasebeci, muhtar olan kişileri süzmem gerekiyor.

<?php
$Gorevler = 'Muhasebeci';
$liste = array_filter($result,function($deger)use ($Gorevler) { 
	return $deger['Gorev']==$Gorevler;
});
print_r($liste);
?>
PHP

şeklinde muhasebecileri listeledim ama $Gorevler değişkeni POST ile gönderiliyor.
Dolayısıyla tek gorev de gelebilir, çok görev de.
Dediğim gibi SQL WHERE kullanamam. PHP ile yapmak durumundayım.

Özetle, Array'da arama ya da Array filtreleme, süzme gibi işlemleri nasıl yaparım?

makifgokce
1455 gün önce
$Gorevler = 'Muhasebeci,Muhtar'; // çekmek istediğin görevlerin arasına virgül koyarak yazarsan
$Gorevler = explode(',', $Gorevler); // buradada görevleri virgülden ayırarak array e dönüştürüp
$liste = array_filter($result,function($deger) use ($Gorevler){ 
	$list = [];
	foreach($Gorevler as $gorev){
		if($deger['Gorev'] == $gorev){
			array_push($list, $deger);
		}
	}
	return $list;
});

echo "<pre>";
print_r($liste);
echo "</pre>";
PHP