Convert PHP code into Ruby!
RSS icon Email icon Home icon
  • array_change_key_case

    Posted on March 28th, 2009 RubyLove 1 comment

    This function changes all keys in an array by returning an array with all keys from argument lowercased or uppercased. Numbered indices are left as is.

    PHP

    $input_array = array('FirSt' => 1, 'SecOnd' => 4);
    print_r( array_change_key_case($input_array, CASE_UPPER) );
    // => array('FIRST' => 1, 'SECOND' => 4);

    To replicate this functionality in Ruby, we need to use a Hash object, since arrays in Ruby don’t use associative key/value pairs.

    Ruby

    hash = {'FirSt' => 1, 'SecOnd' => 4}
     
    result = hash.inject({}) do |hash, keys|
      hash[keys[0].upcase] = keys[1]
      hash
    end
    p result
    # => { 'FIRST' => 1, 'SECOND' => 4 }
     

    One response to “array_change_key_case”

    1. hash = {’FirSt’ => 1, ‘SecOnd’ => 4}
      p Hash[hash.keys.map(&:upcase).zip(hash.values)]
      # => {”FIRST”=>1, “SECOND”=>4}

    Leave a reply