配列操作の比較表
配列操作の比較表: Ruby, Python, JavaScript, Perl, C++(いやなブログ)
面白そうでしたので、PHP で書いてみました。
既に PHP で同じように作成した方がおられましたが、あまり大きな違いはないと思います。せっかくなので載せておきます。
Ruby | PHP |
---|---|
a = [1, 2, 3] | $a = array( 1, 2, 3 ); |
a.length | count( $a ); |
a.empty? | empty( $a ); |
a.push(x) | $a[] = $x / array_push( $x ); |
a.unshift(x) | array_unshift( $a, $x ); |
a.pop | array_pop( $a ); |
a.shift | array_shift( $a ); |
a.concat(b) | $a = array_merge( $a, $b ); |
a.clear | $a = array(); |
a.insert(i, x) | array_splice( $a, $i, 0, $x ); |
a.delete(x) | array_filter( $a, create_function( '$b', 'return $b !== ' . $x . ';' ) ); |
a.delete_at(i) | unset( $a[$i] ); $a = array_value( $a ); ((array_value()で配列の添え字をリセット)) |
a.nitems {|e| e == x } | $a0 = array_count_values( $a ); $a0[$x]; |
a.include?(x) | in_array( $x, $a ); |
a.index(x) | array_search( $x, $a ); |
a.first | reset( $a ); |
a.last / a[-1] | end( $a ); |
a[i,l] / a.slice(i, l) | array_slice( $a, $i, $l ); |
a[i..j] / a.slice(i..j) | array_slice( $a, $i, $j - $i + 1 ); |
a[i...j] / a.slice(i...j) | array_slice( $a, $i, $j - $i ); |
a.sort | sort( $a0 = $a ); |
a.sort! | sort( $a ); |
a.reverse | array_reverse( $a ); |
a.reverse! | $a = array_reverse( $a ); |
a.uniq! | $a = array_unique( $a ); |
a.join(d) | implode( $d, $a ); |
a.each {|x| ... } | foreach ( $a as $x ) { ... } |
- a.insert の方法では array_splice() を一回使用するだけでできる方法があったので変更。
- a.index では array_search() の使い方を間違っていたので修正。