рдЕрдХреНрд╕рд░ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗрдЯ рд╕реЗ рдЕрдиреНрдп рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдордВрдЪ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдирд┐рд╖рд┐рджреНрдз рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди: рдирд┐рд╖рд┐рджреНрдз рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ, рдФрд░ рдлрд┐рд░
in_array()
рд▓рд┐рдП
in_array()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред
рдЕрд░реНрд░реЗ рдЦреЛрдЬ
рдЖрдорддреМрд░ рдкрд░ рдЪреЗрдХ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ:
<?php $words = get_all_words_in_text($text); $badWords = ['$$$$', '@#$%', 'crud' ]; foreach ($words as $word) { if (in_array(strtolower($word), $badWords)) { echo 'Found bad word: ' . $word . "\n"; } }
рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИред рд╣рдо рд╕рдВрджреЗрд╢ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд╖рд┐рджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ
in_array()
ред PHP рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛
in_array()
рдлрд╝рдВрдХреНрд╢рди рдХреЛ
in_array()
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
in_array()
рдореЗрдВ рд░реИрдЦрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрддреА рд╣реИ - O (n)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмреБрд░реЗ рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдкрд░рд┐рдЪрд╛рд▓рди рд╕рдордп рдЖрдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реИрд╢ рд╕рд░реНрдЪ
рдЪреВрдВрдХрд┐ рдмреБрд░реЗ рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЬрд╛рдиреА рдЬрд╛рддреА рд╣реИ, рдЖрдк рддреБрд▓рдирд╛ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░ рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛ рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рдирд┐рд╖рд┐рджреНрдз рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рдореБрдЦ рдЦреЛрдЬ рдЧрддрд┐ O (1) рд╣реИ,
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬреЛ рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдпрджрд┐ рд╣рдо рдмреБрд░реЗ рд╢рдмреНрджреЛрдВ рдХреА рд╕рд╛рд░рдгреА рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрд╕рдХреЗ рдорд╛рди рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрди рдЬрд╛рдПрдБ, рдФрд░ рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рди рдмрд┐рд▓рдХреБрд▓
true
, рддреЛ рд╣рдо
isset()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрддрд┐ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
<?php $words = get_all_words_in_text($text); $badWords = [ '$$$$' => true, '@#$%' => true, 'crud' => true
рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг
рдЖрдЗрдП рдирдП рддрд░реАрдХреЗ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рдЬреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛: "рд╕рд░рдгреА рдЦреЛрдЬреЗрдВ" рдФрд░ "рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ"ред
<?php $total = 10000; $paragraph = 'this is a sentence. Crud! $$$$!'; $words = explode(' ', $paragraph); $badWordList = ['$$$$', '@#$%', 'crud', 'fud', 'fudd', 'dud']; $s = microtime(true); for ($j = 0; $j < $total; $j++) { foreach ($words as $word) { in_array(strtolower($word), $badWordList); } } echo "in_array: " . (microtime(true) - $s) . "\n"; $badWordHash = [ '$$$$' => true, '@#$%' => true, 'crud' => true, 'fud' => true, 'fudd' => true, 'dud' => true ]; $s = microtime(true); for ($j = 0; $j < $total; $j++) { foreach ($words as $word) { isset($badWordHash[strtolower($word)]); } } echo "hash: " . (microtime(true) - $s) . "\n";
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг 10,000 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
in_array: 0.033491134643555 hash: 0.0069370269775391
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИрд╢ рдЦреЛрдЬ рдиреЗ рд╕рд░рдгреА рдХреА рдЦреЛрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 480% рдХреА рд╡реГрджреНрдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХреАред
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдирд┐рд╖рд┐рджреНрдз рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ,
in_array()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп
in_array()
ред рд▓реЗрдХрд┐рди
isset()
рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╕рдордп рд╕реНрдерд┐рд░ рд░рд╣реЗрдЧрд╛ред рдореИрдВ рддреБрдореНрд╣реЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдирд┐рд╖рд┐рджреНрдз рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ 10,000 рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
<?php $total = 10000; $paragraph = 'this is a sentence. Crud! $$$$!'; $words = explode(' ', $paragraph);
рдЧрддрд┐ рдореЗрдВ рдЕрдВрддрд░ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред рд╣реИрд╢ рдЦреЛрдЬ рдПрдХ рд╕рд░рдгреА рдЦреЛрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 3 162 рдкреНрд░рддрд┐рд╢рдд рддреЗрдЬ рд╣реИред
in_array: 20.464313983917 hash: 0.0064699649810791
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рдирдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ
рдпрд╣ рдХреЛрдИ рдирдпрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдЪрд╛рдирдХ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ "
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдСрди рд▓реБрдЖ " рдкреБрд╕реНрддрдХ рдкрдврд╝рддреЗ рд╣реБрдП рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
in_array()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд╛рдо рдХреА рдЧрддрд┐
in_array()
рдпрджрд┐ рдЖрдк рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХреА рдХреБрдВрдЬреА рдкрд░
isset()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред