Giriş yap

PHP Dizileri Anahtar-Değer ile String İfadeye Dönüştürmek

Bu işleme neden lazım olunur önce onu anlamak lazım. Ben mesela veritabanı sınıfı yazarken şöyle bir kullanım yapıyordum;

$params = [
    'ORDER BY' => 'date DESC',
    'LIMIT' => '0, 10'
];
Database::select('messages', $params)

Ve kolay kullanabilmem içinde anahtar-değer olan dizilerimi birleştirip bir stringe dönüştürmem gerekiyordu. Yani yukarının sonucunda şöyle bir sql kodum olmalı;

SELECT * FROM messages ORDER BY date DESC LIMIT 0, 10

Bunuda en kolay şu şekilde yaptım;

$params = [
    'ORDER BY' => 'date DESC',
    'GROUP BY' => 'date',
    'LIMIT' => '0, 15'
];
array_walk($params, function(&$i, $k){
    $i = "$k $i";
});
$sql = implode(' ', $params);
echo $sql; // Çıktı: ORDER BY date DESC GROUP BY date LIMIT 0, 15

foreach'e sokup bir değişene atayıp onu kullanmak yerine, dizi fonksiyonlarından biri olan array_walk() fonksiyonunu kullandık. Ve anonim fonksiyon içerisinde anahtarımızı anahtar değer şeklinde eşitledik. Dizi implode() ile birleştirip istediğimiz sonucu aldık.

Tayfun Erbilen
23 gün önce yazdı.