PHP to Ruby
Convert PHP code into Ruby!-
array_count_values
Posted on October 21st, 2009 No commentsThe 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 2 commentsThe 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 No commentsThe 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 No commentsThe 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 No commentsThe 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 No commentsThe 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 No commentsThe 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 No commentsThe 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 No commentsNumeric Array
-
Multidimensional Array
Posted on September 24th, 2009 No commentsMultidimensional Array


