• ベストアンサー

N桁の数字を順に表示したい

例えば (1~9)までの数字を4つの変数(配列の1要素ずつでもいい) に分けて格納して、各変数の数字がダブらないようした 4桁の数字を順に表示するときって if( $a!=$b and $a!=$c and $a!=$d and $b!=$c and $b!=$d and $c!=$d ){ echo $a.$b.$c.$d."<br>" } すればいいと思うのですけど 数が多くなるとものすごく大変なので もっといい方法があるのではないかと思うのですが? ありますでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

もっと効率的なものがありそうですが、念のため <?PHP $a=3; $b=4; $c=1; $d=2; $x=count(array_unique(Array($a,$b,$c,$d))); if($x==4) print "$a $b $c $d"; $a=3; $b=1; $c=1; $d=2; $x=count(array_unique(Array($a,$b,$c,$d))); if($x==4) print "$a $b $c $d"; ?>

widoww
質問者

お礼

なるほど^^ ありがとうございます。参考になりました

関連するQ&A

  • 5桁の数字…

    初めての質問でここでいいのかわかりませんが、教えてください。 5桁の数字が2つあり、それぞれa[1]…a[5]、b[1]…b[5]に格納する。 対応する桁どうし(a[1]とb[1])を比較して一致する桁の個数を求めるプログラムを擬似コードで表したいのです。 { 2つの桁の数を配列a,bに読み込む; count=0; i=i+1; while(i<=5) { if(a[i]==b[i])(??); else 誤ったデータの処理; } countの値を出力する; } ??の部分には何をいれればよいでしょう? また他のところでも間違いがあればご指摘お願いいたします。

  • DBに半角数字10桁入力すると別数字になります

    phpとphpmyadminを連携しており、フィールドはid(AUTO_INCREMENT)を含め、11項目作成しています。 phpでは9つのフォームがあり、入力された値が2~10つ目のフィールド(すべてint(10))に格納され、11こ目のフィールドはdateで取得した値が入ります。 php上で、生成されたsql文をechoで表示させると、入力したとおりになっているのですが、phpmuadminの中身を見てみると、10桁フルで入力した値が、決まって「2147483647」となっており、困っています。 変数もechoで細かく見てみましたが、どこもおかしなところはありません。 DBに格納された数字のみがおかしなことになっています。 さらに、いろいろ試してみたところ、 1234564757はそのまま 2222222222は2147483647 2222222229は2147483647 4545454545は2147483647 1111111112はそのまま 1111111111はそのまま 2222はそのまま(9桁までの数字の連続なら正常) のような感じで、1の場合は10桁でも変な数字にならず、ほかの数字が連続するときまって2147483647になるようです。 11桁からはプログラムによりエラーが出て再入力を求めるようにしており、11桁以上の場合は正常にエラーが出るので、おかしくなるのは、10桁のときのみです。 格納寸前の変数も直後の変数や$sqlもおかしなところは全くないので、何が狂わせているのかがわからずにいます。 php:5.3.8 mysql:5.5.16 phpmyadmin:3.4.5 Apache:2.2.21 (Win32) つたない説明で分かりづらいかもしれませんが、大変困っておりますので、 何かアドバイス等があれば是非ご教授いただければ幸いです。

    • ベストアンサー
    • MySQL
  • 添削おねがいします。数字のマッチング

    書いてみましたが、うまく表現できません。 添削してもらえませんでしょうか。 ◆理想とする動作 1~50の数字を表示させる。 そのさい$bの配列内の数字と一致した時は  数字xはAとBで一致しています と表示させ、それ以外は  数字xは不一致です とし数字が50になるまで、どちらかの表記ですべて表示させる。 $a=range(1,50); $b=array(1,4,8,10,14,20,21); if ($a[]==$b[]){ echo "数字xはAとBで一致しています<br>"; }else{ echo "数字xは不一致です<br>"; } 動作例; 数字1はAとBで一致しています 数字2は不一致です 数字3は不一致です 数字4はAとBで一致しています 添削いただけないでしょうか。 よろしくおねがいします。

    • ベストアンサー
    • PHP
  • 4桁の自然数nの千の位、百の位、十の位、一の位

    4桁の自然数nの千の位、百の位、十の位、一の位の数字を、それぞれa,b,c,dとする 次の条件を満たすnの個数を求めよ (1)a>b>c>d 何ですが解答は  10個の整数0、1、2、…、9から異なる4個を取り出して、大きい順にa,b,c,dとおけばよいから 10C4=210(個)   とありました 私は10C4は10個の整数から異なる4個を取り出すという意味はわかるんですが なぜ大きい順にa,b,c,dとおけるのかがよく分からないです 10C4に大きい順にa,b,c,dと並べるという意味まで入っているとはとても思えないです

  • フォルダの表示順が理解できません

    Windows 7で、エクスプローラで、次のAのような、英数字3文字で成る8つのフォルダを作るとAのように上から順に並ぶと思っていたのですが、実際に作ってみるとBのように並びます。 A   111   11a   1a1   1aa   a11   a1a   aa1   aaa B   1a1   1aa   11a   111   a1a   a11   aa1   aaa Aは、まず数字のグループが上位に来て、その下位にアルファベットのグループが来ると考えた順番です。つまり、数字優先の順番です。 Bは、1桁目に関しては数字優先の順番になっていますが、2桁目以降はどんな規則で配列されているのか分かりません。でたらめのように見えます。 Aのように配列させる方法があるでしょうか。 そのような方法がない場合、Bがどのような規則によって配列しているのか教えていただけないでしょうか。

  • [マクロ]配列を区切り文字で変数に格納する方法

    タイトルの通りなのですが、 例えば、 A1~B10にランダムな数字が入っています。 (1)A1~B10を配列Cに格納します。 (2)配列C(1,10)を変数test1に格納します。  ※その時に各配列を/で区切る (3)配列C(2,20)を変数test2に格納します。  ※その時に各配列を/で区切る (4)test1をセルC1に記入 (5)test2をセルC1に記入 のような感じです。 配列に格納する方法はさすがに分かるのですが、区切り文字を入れて変数に格納する方法が分かりません。。。。 ご教授お願いいたします。

  • 有効数字について

    有効数字について C=A×B×DのCを有効数字3桁で示せという場合 A=1.12 B=8.96 が既に定められているとして そこにD=128と入れて計算したい場合はDをどのように設定すれば良いのでしょうか?やはり1.28×10^2と設定するべきでしょうか?

  • スペースで別れたセル内の数値を若い順に並び替える

    A1= b62 3d 6e b7f A2 = s6c 2d 6e s7f とA列内の各セルに、2桁ないし3桁の文字列(左はsかbもしくはブランク、 真ん中は1から7までの整数、右はアルファベットaからfまで)が各4つ~6つ程あります。これを以下の規則に従って、セル内で並び替えることはできますか?マクロだと助かります。 規則は (1)真ん中の数字が若い順に並び替え (2)真ん中の数字が同じものが複数ある場合は右のアルファベットが若い順に並び替え (3)真ん中と右の数字が同じものが複数ある場合はb、ブランク、sの順に並び替え。 つまり A64= s7b b7b 7b 7c だったら A64=b7b 7b s7b 7c このように並び替えられるようにしたいのですが、可能でしょうか。

  • この数字は?

    ABCDE(5桁の数字)×4=EDCBA が当てはまり、A,B,C,D,Eはそれぞれ異なる1桁の数字とするとき それぞれの数字を答えよ。 答えだけでなく、答えの出し方を教えてください。お願いします。

  • 有効数字の取り扱い

    ある実験で最終結果を有効数字3桁にしたい場合を考えます。 物理量A(複数回測定)、B(1回のみ測定)、C(Aに同じ)があり、それらの有効数字は A:5桁 B:3桁 C:4桁 で、 平均値の有効数字が A:6桁 C:7桁 になるとします。 A、B、Cを計算してDという物理量を求める場合、 (1)有効桁数を考えずに途中計算を行い、最終結果のみを3桁にする。 (2)A、Cの平均値を有効数字を合わせながら((a)Aは測定値の5桁、Cは6桁にor(b)A、Cともに3桁に)行う。 のどちらが正しいのでしょうか。

専門家に質問してみよう