Максимальное значение в массиве - PHP

D
На сайте с 28.06.2008
Offline
1101
962

Я получаю запросом из базы массив вида:

id -> text

Мне нужно запомнить ID записи с наибольшим по размеру текстовым полем и сделать для него $db->setQuery("UPDATE№1,

а для других ID этого массива - $db->setQuery("UPDATE№2

Есть массив из текстовых полей, я хочу вычленить из них наибольшее текстовое поле

Получаю данные из базы

$db->setQuery("SELECT id, text FROM #__table WHERE parent_id =" . $id);
$totalAnswers = $db->loadObjectList();

и дальше я застрял на этом

foreach ($totalAnswers as $answer) {
$a = mb_strlen($answer->text);
$b = $answer->id;
echo $a. "<br>";
echo $b. "<br>";

}
;

В принципе получаю то что нужно

625
171561
262
171579
253
171632

Кол-во символов ответа и его ID.

Но как это собрать в нужное условие (чтобы для максимально сделать запрос №1, а для всех других №2) не догоняю.... прошу помочь!

Samail
На сайте с 10.05.2007
Offline
361
#1


$a = 0;
foreach ( $totalAnswers as $answer ) {
if ( mb_strlen( $answer->text ) <= $a ) {
continue;
}
$a = mb_strlen( $answer->text );
$b = $answer->id;
};

echo $a . "<br>";
echo $b . "<br>";
D
На сайте с 28.06.2008
Offline
1101
#2

Samail, вы вывели максимальное символов в ответе и его ID, я это тоже довольно быстро решил, только так

foreach ($totalAnswers as $answer) {
$massiv[] = mb_strlen($answer->text);
}
$a = max($massiv);
echo $a;

Но по прежнему не понимаю как с этим работать?

Как сделать условие - для ID максимального ответа сделать то-то, для всех других из первоначального массива - то-то?

Samail
На сайте с 10.05.2007
Offline
361
#3
Dram:
Как сделать условие - для ID максимального ответа сделать то-то, для всех других из первоначального массива - то-то?

Можно ещё раз цикл запустить

$a = 0;
foreach ( $totalAnswers as $answer ) {
if ( mb_strlen( $answer->text ) <= $a ) {
continue;
}
$a = mb_strlen( $answer->text );
$b = $answer->id;
};

echo $a . "<br>";
echo $b . "<br>";

foreach ( $totalAnswers as $answer ) {
if ( $answer->id == $b ) {
// что-то до для самого длинного
} else {
// для всех остальных
}
};
D
На сайте с 28.06.2008
Offline
1101
#4

Samail, то что нужно!!! Спасибо большое, никак не мог до этого догнать!

Samail
На сайте с 10.05.2007
Offline
361
#5

Или в 1 запросе самом указать если id равен $b

Во втором если не равен

D
На сайте с 28.06.2008
Offline
1101
#6

Уже неделю не дает никому плюсануть в репу :(

png 183444.png

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий