• 25-01-2023, 21:42:09
    #1
    Arkadaşlar tam anlamıyla yapamadım elimde veritabanından dönen bir veri var bu veriyi filtreleyip bir arraya aktarmak istiyorum ama veri foreach veya while döngüsünden geçiyor bunu nasıl sağlamalıyım
  • 25-01-2023, 21:43:57
    #2
    $filtrelenmis_veri = array_filter($veri, function($item) {
        return $item['field_name'] == 'value';
    });

    buda array içinde kullanımına örnek olur

    $filtrelenmis_veri = array();
    while($item = mysqli_fetch_assoc($result)){
        if ($item['field_name'] == 'value') {
            $filtrelenmis_veri[] = $item;
        }
    }
  • 25-01-2023, 21:52:42
    #3
    Veritabanından dönen veriyi filtrelemek için kullanabileceğiniz birkaç yöntem var. Örneğin, veriyi döngü içinde gezerek tek tek elemanları filtreleyebilirsiniz. Bu işlemi yaparken foreach döngüsünü kullanabilirsiniz. Örneğin:
    $filteredData = array();
    foreach ($data as $item) {
        if ($item['field'] == 'value') {
            $filteredData[] = $item;
        }
    }
    Bu kod bloğu, veritabanından dönen veriyi $data değişkeninde saklar ve her bir elemanı tek tek $item değişkenine atar. Daha sonra, if kontrolü ile $item['field'] değeri 'value' ile eşit olup olmadığını kontrol eder ve eşitse, $filteredData dizisine ekler.
    Ayrıca, veriyi döngü içinde gezmek yerine, dizi işlevleri ile filtreleme yapabilirsiniz. Örneğin, array_filter() işlevini kullanarak veriyi filtreleyebilirsiniz:
    $filteredData = array_filter($data, function($item) {
        return $item['field'] == 'value';
    });
    Bu kod bloğu, $data dizisindeki her elemanı tek tek gezerek, $item['field'] değeri 'value' ile eşit olan elemanları $filteredData dizisine atar.

    Eğer veritabanından dönen veriyi döngü içinde gezerek array olarak çoklu çıktı almak istiyorsanız, foreach veya while döngüsünü kullanabilirsiniz. Örneğin, bir foreach döngüsü kullanarak veriyi döngü içinde gezerek array olarak çoklu çıktı alabilirsiniz:

    $output = array();
    foreach ($data as $item) {
        $output[] = array(
            'field1' => $item['field1'],
            'field2' => $item['field2'],
            // ...
        );
    }
    Bu kod bloğu, veritabanından dönen veriyi $data değişkeninde saklar ve her bir elemanı tek tek $item değişkenine atar. Daha sonra, $item dizisinden istediğiniz alanları seçerek yeni bir dizi oluşturur. Bu yeni dizi $output değişkenine atanır.

    Ayrıca, bir while döngüsü kullanarak da aynı işlemi yapabilirsiniz:
    $output = array();
    $i = 0;
    while ($i < count($data)) {
        $output[] = array(
            'field1' => $data[$i]['field1'],
            'field2' => $data[$i]['field2'],
            // ...
        );
        $i++;
    }
    Bu kod bloğu, $data dizisinde kaç eleman olduğunu count() fonksiyonu ile öğrenir ve while döngüsü ile her bir elemanı tek tek gezerek istediğiniz alanları seçerek yeni bir dizi oluşturur. Bu yeni dizi $output değişkenine atanır.