PDA

View Full Version : حذف شباهت های تو ارایه در while



titans
جمعه 25 تیر 1400, 11:44 صبح
با سلام!

تصور کنید من دوتا رشته دارم با explode تبدیلشون میکنم به ارایه خب بیاید یه مثال بزینیم مثلا در یک ارایه مثل a این رشته وجود دارد و در ارایه b هم همپین چیزی
$a = "hello har hello" ; و همچینین در b
$b = $_COOKIE['gapCOE']; وجود دارد
خب حالا ما میایم هر دو کدوم از این دو ارایه رو با explode تبدیل به ارایه میکنیم

$t5 =explode(' ',$a); و برای b به این صورت
$t4 =explode(' ',$b); خب در کوکی gapCOE عبارت hello har وجود دارد خب من تصمیم گرفتم با حلقه while مدام برسی بکنه که ایا شباهتی وجود داره یا نه پس این کدو نوشتم


while($t4[0] == $t5[0] && isset($t4[0])){ array_splice($set_ek, 0, 1); array_splice($t5, 0, 1); $i =$i + 1; echo "*set_ek"."\t"."(".$i.")".":".$set_ek[0]."<br>*t5"."(".$i.")".":".$t5[0]."<br>"; }


اما خب این درست کار نمیکنه امیدوارم جواب سوالمو بگیرم پیشاپیش از جواب هاتون ممنونم!

plague
جمعه 25 تیر 1400, 12:20 عصر
من متوجه نشدئم درست میخای چیکار کنی و کدت هم که درست قابل خوندن نیست یک خطه شده و یه سری متغیر توشه که معلوم نیست چین و از کجا اومدن مثل set_ek
سوال میپرسی دقت کن کدت درست پست شده باشه


اگگه بخای مقادیر تکراری رو از توی 2 تا آرایه حذف کنی یه همچین یچزی میشه






$array1 = ['a' , 'b' , 'c'] ;
$array2 = ['x' , 'c' , 'y'];



foreach($array1 as $k=>$v)
{
if(!in_array( $v , $array2 ))
continue ;
$k2 = array_search ($v , $array2);


unset($array1[$k]);
unset($array2[$k2]);

}

var_dump($array2);

titans
جمعه 25 تیر 1400, 16:42 عصر
با سلام!
ببخشید حواسم نبود set_ek همون t4 هستش
منظورم اینه که مثلا ما یه صفحه داریم که هر کدی رو توش وارد میکنیم جوابی به ما میده خب از یک textarea استفاده کردم و هر بار که کدی نوشته میشه همرو دوباره بر میگردونه خب وقتی این اتفاق میوفته باید دوباره کد هایی که از قبل وارد شدن تفکیک بشن و کد های قبلو توی یک کوکی ریختم و باید چک بشن پس عمل چک شدن کد ها باید به ترتیب باشه یعنی مثلا در متغییر هایی که شما نوشتید هیچ شباهتی رو پیدا نکنه چون اول باید عضو 0 رو برسی بکنه اگه تشابه داشتن اونوقت بره ارایه بعدی

plague
جمعه 25 تیر 1400, 19:04 عصر
متوجه نمیشم چی میگید

titans
شنبه 26 تیر 1400, 00:25 صبح
خب بزارید واضح تر بگم ما مثلا همیچن صفحه html رو داریم

<html> <head> <link rel="stylesheet" type="text/css" href="style.css"> <!--<script src="jquery.min.js" type="text/javascript"></script>
<script> $('#run').keypress(function (e) { if (e.which == 13) { $('form#login').submit(); return false; } });
</script>--> </head> <body> <script> document.body.addEventListener('keydown', function (e) { var keyCode = e.keyCode; if(keyCode == 13) { document.getElementById('submit').click(); } }); </script> <form id="login" action="#" method="POST"> <textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" class="textarea" Autocomplete="off" type="text" name="bv" id="code"><?php echo $tell."\n";?></textarea> <input type="submit" class="btn-action" id="submit"> </form>
<script> document.getElementById('code').click(); </script> </body></html>

این ها به همون صفحه ارسال میشه حالا کد های php اون

<?php

$tell = null;
if(isset($_POST['bv'])){ $gap = $_POST['bv']; echo "gqp=".$gap."<br>"; $set =explode(' ',$gap); $char = str_word_count($gap); if((isset($_COOKIE['gapCOCE']))){ $ek = $_COOKIE['gapCOCE']; echo "ek=".$ek."<br>"; $set_ek =explode(" ",$ek); $char = str_word_count($ek); echo "set=".$set[0]."<br>"."set_ek=".$set_ek[0].'<br><br>'; echo "SET[0] : ".$set_ek[0]."<br><br>"; while($set_ek[0] == $set[0]){ array_splice($set_ek, 0, 1); array_splice($set, 0, 1); //unset($set_ek[0]); //unset($set[0]); if($set_ek[0] == null){ break; } echo "set=".$set[0]."<br>"."set_ek=".$set_ek[0].'<br>'; } } else{ echo"0225"; } echo "<br>set end :".$set[0].'<br>'; switch($set[0]){ case 'hello': case 'Hello': case 'HELLO': $tell = "\nhello:)"; break; case 'how': case 'How': case 'HOW': if($char >= 2){ switch($set[1]){ case 'are': case 'Are': case 'ARE': if($char >= 3){ switch($set[1]){ case 'you': case 'You': case 'YOU': $tell = "thanks, I'm fine"; break; } }else{ $tell = "Well now you said".$set[0].$set[1]; } } }else{ $tell = "Sorry I do not understand your question! :("; } break; default: $tell = "I don't understand"; break; } $tell = $gap.$tell;
setcookie("gapCOCE", $tell , time() + (20*60));
}

?>

همه کد های echo برای نمایش مقدار پیشرفت هستش خب مثلا من عبارت hello رو وارد میکنم جواب هم میگرم اندفه که اطلاعات ارسال مبشن اون hello هم ارسال میشه ما باید اون hello رو بر اساس اون کوکی که داریم تشخیص بدیم و حذف کنیم