[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск максимального элемента массива
Mol4ok

массив 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, так действительно лучше.

Спустя 9 минут, 54 секунды (6.02.2010 - 11:24) sergeiss написал(а):
А где и как ты выводишь результат? Покажи тот код тоже.

Спустя 3 минуты, 28 секунд (6.02.2010 - 11:27) Mol4ok написал(а):
секундочку...
Свернутый текст

$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 написал(а):
Ну и чего? blink.gif
Нафига столько кода? К тому же, я в нем не вижу, где ты ищешь максимальное число в массиве (а точнее говоря, мне лично "в лом" разбирать весь этот код).

Я спрашивал только про ту часть кода, где ты поиска максимального значения (ключам максимального значения) выводишь его, т.е. ключ и максимальное значение.

Спустя 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 написал(а):
кстати, ребят, на этом форуме я могу поставить вам плюсики или что-то в этом роде??? tongue.gif

Спустя 14 минут, 5 секунд (6.02.2010 - 12:26) DedMorozzz написал(а):
нет, зачем. У нас не выставка-продажа...

Спустя 12 минут, 49 секунд (6.02.2010 - 12:39) Mol4ok написал(а):
да я тоже так думаю)))
Спасибо вам!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.