nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

PHP で配列をそれぞれのキーがそれぞれの値になる連想配列に変換する

  • array(1, 2, 5) を array(1 => 1, 2 => 2, 5 => 5) みたいにするということ

PHP

  • Perl の感じで array_map でやろうとしたが array($k=>$v) を返すと多次元配列になってしまうし array_flatten も組み込みでありません
  • array_reduce かわいい
<?php
$ary1 = range(1,10);
$ary2 = array_reduce($ary1, function($ary, $v){ $ary[$v] = $v; return $ary; }, array()));
print_r($ary2);
  • ばかみたいだし応用はきかないけど array_combine のほうが短い
<?php
$ary1 = range(1,5);
$ary2 = array_combine($ary1, $ary1);
print_r($ary2);

ちなみに Perl だと

  • らくちんだけどダンパーが組み込みであるのは PHP のがあほかわいい
@ary = (1..10);
%hash = map { $_ => $_ } @ary;
use Data::Dumper;
print Dumper \%hash;