• 03-10-2016, 17:05:07
    #1
    Aşağıdaki gibi bir array içinde status değeri 1 olan dili ekrana nasıl yazdırabilirim?

    Array (
            [tr] => Array
                (
                    [status] => 1
                    [locale] => tr_TR
                )
    
            [en] => Array
                (
                    [status] => 0
                    [locale] => en_US
                )
    )
  • 03-10-2016, 17:12:23
    #2
    İki yöntem vereyim

    $dizi = ['tr'=>['status'=>1, 'locale'=>'tr_TR'], 'en'=>['status'=>0, 'locale'=>'en_US']];
    
    
    foreach ($dizi as $key => $value) {
      if(array_search(1, $value))
        echo $key;
    }
    $dizi = ['tr'=>['status'=>1, 'locale'=>'tr_TR'], 'en'=>['status'=>0, 'locale'=>'en_US']];
    
    foreach ($dizi as $key => $value) {
      if($value['status'] == 1)
        echo $key;
    }
  • 03-10-2016, 17:17:44
    #3
    Kendi soruma şöyle cevap vereyim.

    $searchFor = 1;
    $filteredArray = 
    array_filter($array, function($element) use($searchFor){
      return isset($element['status']) && $element['status'] == $searchFor;
    });
    Ayrıca ek bilgi içinde teşekkürler @bayGaReZ
  • 03-10-2016, 17:28:07
    #4
    Bir ek bilgi de ben paylaşayım, dizide ufak bir revizyon yaparsak, daha kolay bir yöntemle ekrana basabiliriz.

    $dizi = [['key'=>'tr', 'status'=>1, 'locale'=>'tr_TR'],['key'=>'en','status'=>0, 'locale'=>'en_US']];
    
    echo array_search(1, array_column($dizi, 'status', 'key'));