массив 8 19 8 18 9 18
Необходимо найти максимальный элемент, выводит всегда 18 или по-другому то есть $arrray1[5]
$max=0;
for($jj=1;$jj<=5;$jj++){
if($array1[$jj]>$array1[$max])
{
$max=$jj;
}
}
Вроде все правильно, и что делать???
Спустя 13 минут, 16 секунд (6.02.2010 - 11:10) sergeiss написал(а):
А функция max() чем не нравится??????????????
Спустя 3 минуты, 29 секунд (6.02.2010 - 11:14) Mol4ok написал(а):
Спасибо sergeiss, но мне непонятно и интересно какого..... она не работает?
Кстати, sergeiss, помнишь в конце декабря с тобой разбирали вывод из файла, так вот я как-то оптимизировал функцией file, так действительно лучше.
Кстати, sergeiss, помнишь в конце декабря с тобой разбирали вывод из файла, так вот я как-то оптимизировал функцией file, так действительно лучше.
Спустя 9 минут, 54 секунды (6.02.2010 - 11:24) sergeiss написал(а):
А где и как ты выводишь результат? Покажи тот код тоже.
Спустя 3 минуты, 28 секунд (6.02.2010 - 11:27) Mol4ok написал(а):
секундочку...
сам файл:
253810#BAAAAAAAAAAAAAABAAAAAAAAAAAAAABAAAAAAAAAAA#1112221102211102201102210012200012201102201102201
10220110110110112110221110220110221001220001220110220110220110220110110110112110221110220110221001220001220110
220110220110220222111#258968#AABAAABAABAAAAAAABAAABAABAAAAAABAAAAABAAAA#11011211022111022011022100122000122011
02201102201102201101101101121102211102201102210012200012201102201102201102201101101101121102211102201102210012
20001220110220110220110220110110#253811#ABAAABAAAAAAAAAABAABAAAAAAAAAAAAAAABAAAABA#110112110221110220110221001
22000122011022011022011022011011011011211022111022011022100122000122011022011022011022011011011011211022111022
0110221001220001220110220110220110220110110#101010#AAAABAAABAABABBAAABABAABAABABBAAABAAAAAAAB#1101121102211102
20110221001220001220110220110220110220110110110112110221110220110221001220001220110220110220110220110110110112
110221110220110221001220001220110220110220110220110110#256498#AAABAAABAABABAAAAAAAAABAABABAAAABBBAAABBAA#11011
21102211102201102210012200012201102201102201102201101101101121102211102201102210012200012201102201102201102201
10110110112110221110220110221001220001220110220110220110220110110
то есть идет сначала код пользователя, потом ответы по тесту голланда а затем ответы по тесту кабардовой, все это извлекается и проверяется с ключами.
Свернутый текст
$fp = fopen(((("$file")))."".((("".""."".""))), "r") ;
// $fp = fopen("$file", "r") ;
if (!$fp)
{echo "<p><strong>Файл не найден.</strong></p>";
exit;
}
$i=0;
$md=" ";
$data=file($file);
$count=count($data);
//print"$count"; // количество строк
for($st=0;$st<=$count-1;$st++){
$md=$md.$data[$st]; //получаем строку из файла
}
$ar0=explode("#", $md); // создаем массив из строки, в котором элементами будут, код, 1 тест, 2 тест, код, 1 тест, 2 тест......и.т.д
$razmer=count($ar0);// определяем размер массива
//получаем коды пользователей в отдельный массив
$ar1=" ";
for($r=0;$r<=$razmer-1;$r++){
if(($r==0) || ($r%3==0)){ $ar1=$ar1.'|'.$ar0[$r];} //коды пользователей в строку, разделенных знаком "|"
}
$ar11=explode("|",$ar1);
$size=sizeof($ar11); //размер массива
//print_r($ar11); // коды пользователей в массив
$iter=$razmer/3; //определяем количество членов в массивах, содержащих в виде элементов комбинацию ответов
$ar2=" ";
$i=1;
for($e=0;$e<=$iter;$e++){
$ar2=$ar2.'|'.$ar0[$i]; //ответы по тесту Голланда в строку, разделенных знаком "|"
$i=$i+3;
}
$ar22=explode("|",$ar2);
//print_r($ar22); //ответы Голланда в массив
$ar3=" ";
$i=2;
for($e=0;$e<=$iter;$e++){
$ar3=$ar3.'|'.$ar0[$i]; //ответы по тесту Кабардовой в строку, разделенных знаком "|"
$i=$i+3;
}
$ar33=explode("|",$ar3); //ответы по тесту Кабардовой в массив
for($i=1;$i<=$iter;$i++){
$kod=$ar11[$i]; //код пользователя
$query="select t1.id from users t1 where t1.idcode=$kod";
$result=mysql_query($query);
$row = mysql_fetch_row($result);
$kodid=$row[0]; //id пользователя
$gols=$ar22[$i]; //все ответы по голланду, пользователя, в строке
$str1=" ";
$str2=" ";
$dlinastroki=strlen($gols);
for($k=0;$k<=strlen($gols);$k++){
$str1=substr($gols,$k,1); //разбиваем все ответы чертой "|"
$str2=$str2."|".$str1;
}
$golm=explode("|",$str2); //теперь они в массиве $golm
$razmer=sizeof($golm);
$u=1;
for($m=1;$m<=$razmer-2;$m++){
$dt=date('d m Y');
//print"$dt";
$s1=substr("$dt",0,2);
$s2=substr("$dt",3,2);
$s3=substr("$dt",6,4);
$s4=$s3.'.'.$s2.'.'.$s1;
$query="insert into gollandtest(usid,quesid,answer,data) values($kodid,$u,'$golm[$m]','$s4')";
$result=mysql_query($query);
$u++;
}
/// полдучим результаты теста голланда и запишем в таблицу
$query="select * from gollandtest t1, gollandkey t2
where t1.quesid=t2.vopk and t1.answer=t2.otvk and t1.usid=$kodid";
$result=mysql_query($query);
if (mysql_numrows($result)==14){$res="Реалистичный тип";}
$query1="select * from gollandtest t1, gollandkey1 t2
where t1.quesid=t2.vopk1 and t1.answer=t2.otvk1 and t1.usid=$kodid";
$result1=mysql_query($query1);
if (mysql_numrows($result1)==14){$res="Интеллектуальный тип";}
$query2="select * from gollandtest t1, gollandkey2 t2
where t1.quesid=t2.vopk2 and t1.answer=t2.otvk2 and t1.usid=$kodid";
$result2=mysql_query($query2);
if (mysql_numrows($result2)==14){$res="Социальный тип";}
$query3="select * from gollandtest t1, gollandkey3 t2
where t1.quesid=t2.vopk3 and t1.answer=t2.otvk3 and t1.usid=$kodid";
$result3=mysql_query($query3);
if (mysql_numrows($result3)==14){$res="Конвенциональный тип";}
$query4="select * from gollandtest t1, gollandkey4 t2
where t1.quesid=t2.vopk4 and t1.answer=t2.otvk4 and t1.usid=$kodid";
$result4=mysql_query($query4);
if (mysql_numrows($result4)==14){$res="Предприимчивый тип";}
$query5="select * from gollandtest t1, gollandkey5 t2
where t1.quesid=t2.vopk5 and t1.answer=t2.otvk5 and t1.usid=$kodid";
$result5=mysql_query($query5);
if($result5<>0){
if (mysql_numrows($result5)==14){$res="Артистический тип";} }
if ($res==" ") {$res="Неопределен";} ;
$zapros="Insert into resultsgolland(usid,define) values($kodid,'$res')";
$reszapros=mysql_query($zapros);
print" $res ";
$res=" ";
$gols=" ";
$golm=" ";
$kabs=$ar33[$i]; //все ответы по кабардиной, пользователя, в строке
$str3=" ";
$str4=" ";
for($ks=0;$ks<=strlen($kabs);$ks++){
$str3=substr($kabs,$ks,1); //разбиваем все ответы чертой "|"
if($str3=="1" || $str3=="2" || $str3=="0"){
$str4=$str4."|".$str3;
} }
$kabm=explode("|",$str4); //теперь они в массиве $kabm
$uu=1;
for($ms=1;$ms<=180;$ms=$ms+3){
$dt=date('d m Y');
//print"$dt";
$s1=substr("$dt",0,2);
$s2=substr("$dt",3,2);
$s3=substr("$dt",6,4);
$s4=$s3.'.'.$s2.'.'.$s1;
$k1=$ms+1;
$k2=$ms+2;
$summa=$kabm[$ms]+$kabm[$k1]+$kabm[$k2];
$query="insert into kabardtest(usid,questid,ansu,anso,ansj,summa,data) values($kodid,$uu,$kabm[$ms],$kabm[$k1],$kabm[$k2],$summa,'$s4')";
$result=mysql_query($query);
$uu++;
}
$kabs=" ";
$kabm=" ";
//выведем все по системам( Кабардова)
//znakovaya sistema
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(1,7,13,19,25,31,37,43,49,55)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokazs=$row[0].'|'.$row[1].'|'.$row[2];
}
/////////////////////////////////////////
//tehnika
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(2,8,14,20,26,32,38,44,50,56)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokateh=$row[0].'|'.$row[1].'|'.$row[2];
}
/////////////////////////////////////////
//jivaya priroda
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(3,9,15,21,27,33,39,45,51,57)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokajp=$row[0].'|'.$row[1].'|'.$row[2];
}
//////////////////////////////////////
//hudojestvennii obraz
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(4,10,16,22,28,34,40,46,52,58)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokahud=$row[0].'|'.$row[1].'|'.$row[2];
}
////////////////////////////////////
//chelovek
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(5,11,17,23,29,35,41,47,53,59)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokachel=$row[0].'|'.$row[1].'|'.$row[2];
}
///////////////////////////////////
//nejivaya priroda
$query="Select sum(ansu) as 'sumumen', sum(anso) as 'sumotn', sum(ansj) as 'sumjel' from kabardtest where usid=$kodid and questid in(6,12,18,24,30,36,42,48,54,60)";
$result=mysql_query($query);
while($row=mysql_fetch_row($result)){
if (strlen($row[0])==1) {$row[0]="0"."$row[0]";};
if (strlen($row[1])==1) {$row[1]="0"."$row[1]";};
if (strlen($row[2])==1) {$row[2]="0"."$row[2]";};
$strokapn=$row[0].'|'.$row[1].'|'.$row[2];
}
$query="insert into syskabardtest(usid,zs,t,pj,xo,chel,pn) values($kodid,'$strokazs','$strokateh','$strokajp','$strokahud','$strokachel','$strokapn')";
mysql_query($query);
}
print"Данные внесены";
}
print"<form action='fromfile.php' method=Post>";
Print"Тест Голланда, тест Кабардовой";
print"<br>";
print"<br>";
print "<input type=submit name=submit value=submit>";
print"<input type=file name=file value=file>";
сам файл:
253810#BAAAAAAAAAAAAAABAAAAAAAAAAAAAABAAAAAAAAAAA#1112221102211102201102210012200012201102201102201
10220110110110112110221110220110221001220001220110220110220110220110110110112110221110220110221001220001220110
220110220110220222111#258968#AABAAABAABAAAAAAABAAABAABAAAAAABAAAAABAAAA#11011211022111022011022100122000122011
02201102201102201101101101121102211102201102210012200012201102201102201102201101101101121102211102201102210012
20001220110220110220110220110110#253811#ABAAABAAAAAAAAAABAABAAAAAAAAAAAAAAABAAAABA#110112110221110220110221001
22000122011022011022011022011011011011211022111022011022100122000122011022011022011022011011011011211022111022
0110221001220001220110220110220110220110110#101010#AAAABAAABAABABBAAABABAABAABABBAAABAAAAAAAB#1101121102211102
20110221001220001220110220110220110220110110110112110221110220110221001220001220110220110220110220110110110112
110221110220110221001220001220110220110220110220110110#256498#AAABAAABAABABAAAAAAAAABAABABAAAABBBAAABBAA#11011
21102211102201102210012200012201102201102201102201101101101121102211102201102210012200012201102201102201102201
10110110112110221110220110221001220001220110220110220110220110110
то есть идет сначала код пользователя, потом ответы по тесту голланда а затем ответы по тесту кабардовой, все это извлекается и проверяется с ключами.
Спустя 6 минут, 23 секунды (6.02.2010 - 11:34) sergeiss написал(а):
Ну и чего?
Нафига столько кода? К тому же, я в нем не вижу, где ты ищешь максимальное число в массиве (а точнее говоря, мне лично "в лом" разбирать весь этот код).
Я спрашивал только про ту часть кода, где ты поиска максимального значения (ключам максимального значения) выводишь его, т.е. ключ и максимальное значение.
Нафига столько кода? К тому же, я в нем не вижу, где ты ищешь максимальное число в массиве (а точнее говоря, мне лично "в лом" разбирать весь этот код).
Я спрашивал только про ту часть кода, где ты поиска максимального значения (ключам максимального значения) выводишь его, т.е. ключ и максимальное значение.
Спустя 4 минуты, 18 секунд (6.02.2010 - 11:38) Mol4ok написал(а):
сорри..... я подумал про тот наш давнишний код...
ну вот это значит формирую массив
потом ищу максимальный элемент как выше а затем просто вывожу его и все, элементы массива те числа, я их выводил и проверял
ну вот это значит формирую массив
for($i=1;$i<=6;$i++){
$str=$row[$i];
$str1=substr($str,0,2);
$str2=substr($str,3,2);
$str3=substr($str,6,2);
$str1=(int)$str1;
$str2=(int)$str2;
$str3=(int)$str3;
// $str11=$str11."|".$str1;
// $str22=$str22."|".$str2;
// $str33=$str33."|".$str3;
$array1[]=$str1; //умения
$array2[]=$str2; //отношения
$array3[]=$str3; //желания
}
потом ищу максимальный элемент как выше а затем просто вывожу его и все, элементы массива те числа, я их выводил и проверял
Спустя 7 минут, 58 секунд (6.02.2010 - 11:46) DedMorozzz написал(а):
по поводу макс эл-та - куча методов есть. К примеру есть массив. 1му элту говориться, что он максимальный и далее он сравниваеться с последующим, если большьше, то ему присваеваеться звание "максимальный" и так даалее, тока за весь цыкл не будет не 1 переопределения. На этом моменте цыкл останавливаеться и макс эл-т получен
Спустя 4 минуты, 39 секунд (6.02.2010 - 11:51) Mol4ok написал(а):
DedMorozzz как вы думаете, у меня же первым описанным вами способом, какие там могут возникнуть проблемы?
Спустя 11 минут, 17 секунд (6.02.2010 - 12:02) Ka4_0k написал(а):
$array = array(1,2,4,2,4,6,7,2,1,4);
$max=0;
$sz = sizeof($array);
for($i=0 ; $i < $sz ; $i++) // массив то вроде с нуля начинается ?
if($array[$i] > $max)
$max=$array[$i]; //и если нужен ключ просто $max = $i , а если надо и то
//и то, тогда $max = array($i => $array[$i]);, а потом
//разобрать, ну или просто 2 отдельные переменные.
echo $max;
Спустя 4 минуты, 12 секунд (6.02.2010 - 12:06) Mol4ok написал(а):
Спасибо Ka4_0k, мне нужен был ключ, теперь сделал функцией max
Спустя 6 минут, 9 секунд (6.02.2010 - 12:12) Mol4ok написал(а):
кстати, ребят, на этом форуме я могу поставить вам плюсики или что-то в этом роде???
Спустя 14 минут, 5 секунд (6.02.2010 - 12:26) DedMorozzz написал(а):
нет, зачем. У нас не выставка-продажа...
Спустя 12 минут, 49 секунд (6.02.2010 - 12:39) Mol4ok написал(а):
да я тоже так думаю)))
Спасибо вам!!!
Спасибо вам!!!