![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
$dataには「0_1_0_・・・」という文字列が入っており、
文字列のn文字目が「1」だったらtrueを返す、という処理を
行いたいのですが。
その際の条件を3つ用意し(例:3文字目、7文字目、11文字目)
それらをAND/OR検索のように条件付したいのです。
例:ANDなら
3文字目が「1」"且つ"7文字目が「1」"且つ"11文字目が「1」
である場合、といった風になります
さらに、条件は必ず3つあるのではなく、1つや2つでも
可能というようにしたいのです。
当初書きかけのソースを載せましたが文字数オーバーで転載できず
かなり抽象的な質問になってしまいました。
ご教授いただければ幸いです。
No.1ベストアンサー
- 回答日時:
んーと、こんな感じでしょうか。
これならば3つ以上の条件も与えられるかと思います。
また、for を使っていますが、foreach に変えてもいいかと。
# $str : ターゲットの文字列
# $cond : AND=1, OR=0
# $pos : 位置条件のarray
# 結果 : true / false
function check( $str, $cond, $pos ) {
$checks = 0;
$counts = count( $pos );
for( $i = 0 ; $i < $counts ; $i ++ ) {
if( substr( $str, $pos[$i], 1 ) == 1 ) {
$checks ++;
}
}
# AND
if( $cond ) {
if( $checks == $counts ) return( true );
}
# OR
else {
if( $checks ) return( true );
}
return( false );
}
解答ありがとうございます。
文字列にたいして合致することばかり
考えていましたが、設定した条件の数と
合致した数を比較する方法もたしかにありますね。
これだとすぐ実装できそうな気がします。
No.3
- 回答日時:
$array = split("_",$data); # 配列に入れる。
_で分けない場合は空白にする。$check = array('3','7','11'); # チェックする場所
$oa = 1; # or:0 / and:1
$i=0; # フラグ
foreach($check as $c){
if ($array[$c]){
$i++;
}
}
if ($oa) {
if (count(check) == $i) {
# true
}
} else {
if ($i) {
#true
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) 【画像あり】A1が●+B1と同じ文字がB列にある+C1と同じ文字がC列にある場合D1に〇を付ける 3 2023/03/09 18:18
- Excel(エクセル) エクセルについて教えてください。 1回目が80以上(数字) or 対象外 (文字列)or (空欄) 2 2022/10/17 11:42
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サイト名を取得するPHP
-
XML_Serializerで複数のXMLの扱い
-
PHP5の外部コマンド実行で、バ...
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
重複確認
-
CSVデータの行数カウントをした...
-
URLのサブドメインとドメイン部...
-
読み(あ行~わ行)ごとに分け...
-
CSVデータを使ったページングと...
-
多次元配列を、1次元の配列にす...
-
ネストが深い時のforeachはどう...
-
file_existsでファイル名の部分...
-
CArrayのソート
-
別ファイルの構造体の値を読み...
-
PHPのカッコ[ ]の使い方について
-
CSVファイルの最終行のデー...
-
配列の添え字が小数だとどうなる?
-
C言語の配列をPush(追加)する...
-
【PHP】csvファイルへの書き出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
phpとmysqlで「あいまい検索」...
-
PHP5の外部コマンド実行で、バ...
-
「ローマ字 -> ひらがな」へPHP...
-
Mysqlとphpでソートや更新時の...
-
PEAR・MDB2のモジュールロード...
-
HTTPのメッセージボディについ...
-
数学の「組み合わせ」を求める...
-
順位を付ける時のスコアの重複...
-
Zend_Form_Element_Hash
-
日付から順にデータを並び替えたい
-
占いのPHPを作成中ですが・・・
-
しりとり 無限ループ?
-
要素(文字列)から指定値を検索
-
選択日と終了日を配列で取得したい
-
サイト名を取得するPHP
-
flickrでの画像を取得について
-
多次元配列のカウント+1の仕方
-
mysqlにinsertするとエラーがで...
-
$xml要素を階層指定して取得し...
おすすめ情報