Version: 1.0

Type: Function

Category: Algorithms

Description: if a user has to order items (e.g. in a questionnaire), check if they are correctly ordered. you can check for monotone and strictly monotone lists.

```<?

/*
isMonotoneList & isStrictlyMonotoneList
by matto, 6/1
v 1.0

parm: array of unordered integer values

returns true, if monotone / strictly monotone list

example:	1,2,4,5,5,6 = neither
1,3,2,4,4,5 = monotone
1,3,2,4,6,5 = strictly monotone

purpose:	if user has to order items, check if they are correctly ordered

improvements:	matto@progipark.com
*/

function isMonotoneList(\$werte)
{
sort(\$werte);

\$ok = true;
if(is_array(\$werte))
{
foreach(\$werte as \$element)
{
if(!is_numeric(\$element) || \$element == 0)
{
\$ok = false;
}
}

if(\$ok)
{
for(\$i=1; \$i<=max(\$werte); \$i++)
{
if(!in_array(\$i, \$werte))
{
\$ok = false;
}
}
}
}
elseif(\$werte != 1)
{
\$ok = false;
}

return \$ok;
}

function isStrictlyMonotoneList(\$werte)
{
\$ok = true;

foreach(\$werte as \$element)
{
if(!is_numeric(\$element) || \$element == 0)
{
\$ok = false;
}
}

for(\$i=1; \$i<=max(\$werte); \$i++)
{
\$gefunden = 0;
for(\$j=0; \$j<count(\$werte); \$j++)
{
if(\$werte[\$j] == \$i)
\$gefunden++;
}

if(\$gefunden != 1)
\$ok = false;
}

return \$ok;
}

?>```