人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpの質問です
たかなまな
という5文字を全文字を並び替えたものを、全組み合わせ名前の順に表示したいです。どのようなコードを組めばいいでしょうか?
暗記しなくてはいけない文字をここに入れて覚えやすそうなものを一覧から見つけて覚えるみたいに使いたいです
ほかの文字や文字数でも使えるよう汎用性の高いのを教えてください


●質問者: tattakata
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

なんとかここまではネット見てかけました

<?php

$str ='あいうえお1248朝食';
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";
$str = strShuffleUtf8($str);
print mb_convert_encoding($str,'SJIS-win','UTF-8');
print "<br>";

function strShuffleUtf8($str) {
 $work_array = array();
 $work_array = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
 shuffle($work_array);
 return implode("", $work_array);
}
?>

1 ● Lhankor_Mhy
●250ポイント

順列を生成するPHPプログラムを書いてみたよ! - おもしろ日記パワー
↑こちらが参考になるかと思います。あとはjoinしてsortすればいいかと思います。


2 ● a-kuma3
●250ポイント ベストアンサー

http://www.softel.co.jp/blogs/tech/archives/2263
↑を参考にして、文字列を出力できれば良いだけだったら、配列に貯める必要ないじゃんって思った(随分と早くなるはず)。

<?php
function echo_pat($a, $s = '')
{
 $r = array();
 if (count($a) && is_array($a)) {
 foreach ($a as $k => $v) {
 $_s = $s . $v;
 $_a = $a;
 unset($_a[$k]);
 $_r = echo_pat($_a, $_s);
# $r = array_merge($r, $_r);
 }
 } else {
# $r[] = $s;
 echo $s . "\n";
 }
 return $r;
}

#$s = "123";
$s = "たかなまな";
$a = preg_split("//u", $s, -1, PREG_SPLIT_NO_EMPTY);
echo_pat($a);

?>

配列でほしければ、関数内の # を二か所外して、echo をコメントアウト。

ideone.com で試してみたのが、こちら。
http://ideone.com/RSqdGk


a-kuma3さんのコメント
おっと、のんびりコードを書いてたら出遅れたか <tt>:-)</tt> ちなみにググった時のキーワードは「php 文字列 順列」です。

greuetyoさんのコメント
文字化けしちゃいます。どうすればいいですか?

a-kuma3さんのコメント
php のスクリプトが、Unicode じゃないのだと思います。 Unicode で保存して、実行してみてください。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ