ASPフィルタ配列重複データ機能(拡張版)_JavaScriptスキル
関数コード:
<%'** *********************************************** ****
'フィルター配列重複関数名: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: 任意の文字列、自動的に認識
'cxstr2: cxstr1 の分割記号。
'cxstr3: 結果の特定の位置にある文字列を抽出します。それが 0 に等しい場合はすべてを返し、配列の添字より大きい場合は最後の文字列を返します。二次元配列
'****** *********************************** *************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0 then
if not IsNumeric(cxstr3) then
array_no = "申し訳ありませんが、パラメータ 3 の型は数値である必要があります"
関数終了
end if
else
array_no = "申し訳ありませんが、パラメータ 3 の型は数値である必要があります"
終了関数
end if
if isarray(cxstr1) then
array_no = "申し訳ありませんが、パラメーター 1 は配列にすることはできません"
終了関数
end if
if cxstr1 = "" または isempty (cxstr1) then
array_no = "データなし"
関数終了
end if
ss = split(cxstr1,cxstr2)
cxs=cxstr2&ss(0)&cxstr2
sss=cxs
for m = 0 to ubound(ss)
cc = cxstr2&ss(m )&cxstr2
if instr(sss,cc)=0 then
sss = sss&ss(m)&cxstr2
end if
next
array_no = right(sss,len(sss)-len( cxstr2))
array_no = left(array_no,len(array_no)-len(cxstr2))
if cxstr3 < ;> 0 then
cx_sp = split(array_no,cxstr2)
if cxstr3 > ; ubound(cx_sp) then
array_no = cx_sp(ubound(cx_sp))
else
array_no = cx_sp (cxstr3)
end if
end if
end function%>
以下はテストコードです:
s2 = "1,2,3,11,22,33,12, 13,14,11,33,333,14"
s3 = ""
s4 = "sdf,abc,12,2,2,abc"
s5 = split(s4)
response.write "文字列が文字の場合:"&array_no(s1,",",0)&"< ;br>"
response.write "文字列が数字の場合:"&array_no(s2,",",0)& "
"
response.write "文字列が空の場合: " &array_no(s3,",",0)&"
response.write "文字列が混在する場合: "&array_no(s4,",",0)&"
" >response.write "文字列が配列の場合: "&array_no(s5,",",0)&"
"
response.write "文字列が未知の変数の場合:"&array_no(s33, ",",0)&"
"
response.write "あるビットを抽出する場合、添字を超えない場合: "&array_no(s1,",",2)&"
"
response.write "特定のビットを抽出する際、添字を超えた場合: "&array_no(s1,",",200)&"< ;br>"%>
テスト結果:
文字列が空の場合:データがありません
文字列が混在している場合:sdf,abc,12,2
文字列が配列の場合:申し訳ありませんが、パラメータ 1 は使用できません 配列
文字列が未知の変数:データがありません
あるビットを抽出する場合、添え字を超えない場合:bb
あるビットを抽出する場合、添え字を超える場合:edc
スクリプト ハウスの拡張バージョン:
一般的な配列エラーを解決します
'************************************ ***** ******************
'フィルター配列重複関数名: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: 任意の文字列、自動的に認識されます
'cxstr2: cxstr1 のシンボルを分割します。
'cxstr3: 結果の特定の位置にある文字列を抽出します。それが 0 に等しい場合はすべてを返し、配列の添字より大きい場合は最後の文字列を返します。二次元配列
'****** *********************************** *************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0 then
if not IsNumeric(cxstr3) then
array_no = "申し訳ありませんが、パラメータ 3 の型は数値である必要があります"
関数終了
end if
else
array_no = "申し訳ありませんが、パラメータ 3 の型は数値である必要があります"
終了関数
end if
if isarray(cxstr1) then
array_no = "申し訳ありませんが、パラメーター 1 は配列にすることはできません"
終了関数
end if
if cxstr1 = "" または isempty (cxstr1) then
array_no = "データなし"
関数終了
end if
do while instr(cxstr1,",,")>0
cxstr1=replace(cxstr1," ,,",",")
ループ
if right(cxstr1, 1)=," then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if
ss = split(cxstr1,cxstr2)
cxs=cxstr2&ss(0)&cxstr2
sss=cxs
m = 0 から ubound(ss) の場合
cc = cxstr2&ss(m)&cxstr2
if instr(sss,cc)=0 then
sss = sss&ss(m)&cxstr2
end if
next
array_no = right(sss,len(sss)-len(cxstr2))
array_no = left(array_no,len(array_no)-len(cxstr2))
if cxstr3 <> 0 then
cx_sp = split(array_no,cxstr2)
if ubound( cx_sp) then
array_no = cx_sp(ubound(cx_sp))
else
array_no = cx_sp(cxstr3)
end if
end if
end function
s1 = "abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc, 333,,,,,333,7,,,,"
s2 = "1,2,3,11, 22,33,12,13,14,11,33,333,14,333,,,,,333, 7,,,,"
s3 = ""
s4 = "sdf,abc,12,2,2 ,abc,333,,,,,333,7,,,,"
s5 = split(s4)
response.write "文字列が文字の場合:"&array_no(s1,",",0 )&"
"
response.write "文字列が数値の場合:"&array_no (s2,",",0)&"
response.write "文字列が数値の場合is empty:"&array_no(s3,",",0)&"
"
response.write "文字列が混合文字列の場合:"&array_no(s4,",",0)&"< ;br>gt;"
response.write "文字列が配列の場合:"&array_no(s5,",", 0)&"
"
response.write "文字列が未知の変数の場合:"&array_no(s33,",",0)&"
"
response.write "ある数字を抽出する場合、添え字を超えない: "&array_no(s1,",", 2)&"
"
response.write "特定の桁を抽出すると、添字を超えます: "&array_no(s1 ,",",200)&"
% >
cxstr1=replace(cxstr1,",,", ",")
loop
if right(cxstr1,1 )=、" then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

PHP 配列のマージおよび重複排除アルゴリズムは、元の配列を小さなブロックに分割して並列処理する並列ソリューションを提供し、メイン プロセスは重複排除するブロックの結果をマージします。アルゴリズムのステップ: 元の配列を均等に割り当てられた小さなブロックに分割します。重複排除のために各ブロックを並行して処理します。ブロックの結果をマージし、再度重複排除します。
