PHP to Ruby

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

    Posted on October 21st, 2009 RubyLove No comments

    The array_count_values() function in PHP counts the number of instances of each value in an array. array_count_values() returns an associative array using the values of the input array as keys and their frequency in the input as values.

    PHP

    $a = array('a', 'b','a', 'c', 'c');
    $results = array_count_values($a);
    print_r($results);
    /*
    Array (
    	[a] => 2
    	[b] => 1
    	[c] => 2
    )
    */

    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

    a = [ "a", "b", "a", "c", "c" ];
    result = list.inject({}) do |hash, key|
      hash.include?(key) ? hash[key] += 1 : hash[key] = 1;
      hash
    end
     
    p result;
    # => ["a" => 2, "b" => 1, "c" => 2]
  • array_chunk

    Posted on October 17th, 2009 RubyLove 2 comments

    The array_chunk() function in PHP splits an array into multiple smaller arrays (array chunks).

    PHP

    $langs = array('php', 'ruby', 'java', 'perl', 'csharp');
    $my_size = 2;
    var_dump( array_chunk($langs, $my_size) );
     
    /*
    Array (
        [0] => Array
            (
                [0] => php
                [1] => ruby
            )
     
        [1] => Array
            (
                [0] => java
                [1] => perl
            )
     
        [2] => Array
            (
                [0] => csharp
            )
     
    ) )
    */

    Ruby

    def array_chunk(full_array, size)
            number_of_chunks = (full_array.length/size.to_f).ceil;
            chunks = (1..number_of_chunks).collect { [] }
                while full_array.any?
                  chunks.each do |a_chunk|
                    a_chunk << full_array.shift if full_array.any?
                  end
                end
            chunks
    end
     
    langs = ["php", "ruby", "java", "perl", "csharp"]
    my_size = 2
    p array_chunk(langs, my_size)
     
    # => [["php", "perl"], ["ruby", "csharp"], ["java"]]
  • array_shift

    Posted on October 14th, 2009 RubyLove No comments

    The array_shift() function in PHP removes an element from the beginning of an array and returns it.

    PHP

    $my_array = array('a', 'b', 'c', 'd');
    $my_element = array_shift($my_array);
    print_r($my_element);
    /*
    Array (
    	[0] => a
    )
    */

    Ruby

    my_array = [ "a", "b", "c", "d" ];
    puts my_array.shift;
    # => ["a"]
  • array_unique

    Posted on October 10th, 2009 RubyLove No comments

    The array_unique() function in PHP takes an array and filters our any duplicates values, returning the array with only unique values present.

    PHP

    $elements = array('php', 'ruby', 'perl', 'php');
    array_unique($elements);
    print_r($elements);
    /*
    Array (
    	[0] => php
    	[1] => ruby
    	[2] => perl
    )
    */

    Ruby

    elements = [ "php", "ruby", "perl", "php" ];
    puts elements.uniq;
    # => ["php", "ruby", "perl"]
  • array_unshift

    Posted on October 7th, 2009 RubyLove No comments

    The array_unshift() function in PHP prepends elements onto the beginning of an array.

    PHP

    $cue = array('http', 'https', 'ftp');
    array_unshift($cue, 'ssh');
    print_r($cue);
    /*
    Array (
    	[0] => ssh
    	[1] => http
    	[2] => https
    	[3] => ftp
    )
    */

    Ruby has an identical Array method, named unshift:

    Ruby

    cue = [ "http", "https", "ftp" ];
    cue.unshift('ssh');
    puts cue;
    # => [ "ssh", "http", "https", "ftp"]
  • array_values

    Posted on October 4th, 2009 RubyLove No comments

    The array_values() function in PHP takes an array and returns all it’s values as a numeric array.

    PHP

    $array = array('go' => 'green', 'stop' => 'red');
    var_dump( array_values($array) );
    /*
    Array (
    	[0] => green
    	[1] => red
    )
    */

    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

    array = { :go => 'green', :stop => 'red' };
    puts array.values;
    # => ["green", "red"]
  • list

    Posted on October 1st, 2009 RubyLove No comments

    The list() function in PHP is used to assign multiple variables as if they were an array. Technically, list() is not a function in PHP, it is a language construct.

    Ruby has no real need for a function such as list(), as the same can be achieve using parallel assignment - i.e. assigning comma separated variables to elements of an array using the normal assignment operator.

    PHP

    $langs = array('php', 'ruby', 'perl');
    list($lang1, $lang2, $lang3) = $langs;
    echo $lang1;	// php
    echo $lang2;	// ruby
    echo $lang3;	// perl

    Ruby

    langs = [ "php", "ruby", "perl" ];
    lang1, lang2, lang3 = langs;
    puts lang1;	# php
    puts lang2;	# ruby
    puts lang3;	# perl
  • in_array

    Posted on September 28th, 2009 RubyLove No comments

    The in_array() function in PHP checks if a value exists in an array - returning true if it does, or false otherwise.

    The last argument in this function forces a strict type check of the value in PHP. Since Ruby does not consider a Fixnum of 1 and a String of ‘1′ to be the same - it always operates as if the last argument were set to true.

    PHP

    $my_array = array('a', 'b', 'c', 'd');
    if('a', in_array($a), true) {
    	echo 'Found it in the array';
    }
    // => Found it in the array

    Ruby

    my_array = [ "a", "b", "c", "d" ];
    if( my_array.include?('a') ) {
    	 puts 'Found it in the array';
    }
    # => Found it in the array
  • Numeric Array

    Posted on September 25th, 2009 RubyLove No comments

    Numeric Array

  • Multidimensional Array

    Posted on September 24th, 2009 RubyLove No comments

    Multidimensional Array