質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

421閲覧

長いPHPコード短くしたい

rainbowsix002

総合スコア39

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/11/01 01:54

編集2018/11/01 02:16

$arrayが['1']OR['6'] OR ['6','1'] は true
それ以外
['6','7','1'] ['1','2'] などは falseになるように
コードを作成しました。
下記コードをスマートに短く変えたいですのでよろしくお願いします。

PHP

1$result = 'false'; 2 $array = ['1','6']; 3 $cnt = count($array); 4 if ($cnt <= 2){ 5 foreach ($array as $key => $value) { 6 if( $value != '1' && $value != '6'){ 7 $result = 'false'; 8 break; 9 }else{ 10 $result = 'true'; 11 } 12 } 13 } 14echo($result);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2018/11/01 02:07 編集

['6','1']はどうするのでしょう?(順番まで担保されている必要があるか)また当然['1','1']もだめですよね?(つまり1と6だけで構成されていればよいのか、それとも1もしくは6がユニークに格納されている必要があるのか)
rainbowsix002

2018/11/01 02:09

説明が短くてすみません。順番は関係ない、同一数字は入らないです。
otn

2018/11/01 02:20

要件とコードが合ってません。
guest

回答3

0

ベストアンサー

短くってんなら

$result = true; foreach ($array as $val) { if ($val != '1' && $val != '6') $result = false; } echo($result);

投稿2018/11/01 02:19

編集2018/11/01 02:20
takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rainbowsix002

2018/11/01 03:02

これです!ありがとうございます!
guest

0

PHP

1$target=['1','6']; 2foreach([['1'],['6'],['1','6'],['6','1'],['1','6','7'],['1','2'],['1','1']] as $a){ 3 if( 4 (count($a)==1 and in_array($a[0],$target)!==false) or 5 (count($a)==2 and count($a)==count(array_unique($a)) and in_array($a[0],$target)!==false and in_array($a[1],$target)!==false) 6 ){ 7 print 1; 8 }else{ 9 print 0; 10 }; 11}

投稿2018/11/01 02:17

yambejp

総合スコア114585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな感じですかねえ。

PHP

1$result = false; 2switch(count($array)) { 3 case 1: 4 $result = ($array[0] == '1' || $array[0] == '6'); 5 break; 6 case 2: 7 $result = ( ($array[0] == '1' && $array[1] == '6') || ($array[0] == '6' && array[1] == '1') ); 8 break; 9 default: 10 break; 11} 12return $result;

投稿2018/11/01 02:09

編集2018/11/01 02:10
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問