你好,我是这个论坛的新手。
我在想是否有人能帮我。我目前正在进行一项IT研究,其中一个问题是PHP编程。我目前对以下问题有意见。
问题:创建一个检查数组中值(数字(的函数。如果当前值大于或等于之前的值,则应返回true。如果不是,则echo false。
真实示例:$array=数组(1,2,2,3,4(这应该说是真的4次,因为它变得更大&数字保持不变。
错误示例:$array=array(1,2,1,4(这应该是false,因为数字正在下降。
我制作了以下代码,它将始终返回"true"。
$input = array (1,4,2,7);
function trueorfalse (array $input){
foreach ($input as $key => $value){
$value >= $key[0];
print "true";
}
}
trueorfalse($input);
我不知道如何将foreach循环的当前值与之前的值进行比较。有什么想法吗?
附言:PHP对我来说是新事物,我真的很难想出如何解决问题的想法。
真的,
Joey BenningIT学生Windesheim Zwolle(荷兰(。
这将是我的直接方法:
<?php
function isHigherOrEquals (array $input) {
$result = true;
$previous = PHP_INT_MIN;
foreach ($input as $value) {
if (!($value >= $previous)) {
return false;
}
$previous = $value;
}
return $result;
}
var_dump(isHigherOrEquals([1,4,2,7]));
var_dump(isHigherOrEquals([1,4,6,7]));
var_dump(isHigherOrEquals([1,1,1]));
var_dump(isHigherOrEquals([]));
输出显然是:
bool(false)
bool(true)
bool(true)
bool(true)
不是最有效或最容易理解的方法,但yay用于阵列缩减:
$result = array_reduce($input, function (array $carry, $num) {
return [$carry[0] && $num >= $carry[1], $num];
}, [true, PHP_INT_MIN])[0];
echo $result ? 'true' : 'false';
备选方案:
$result = is_int(array_reduce($input, function ($previous, $current) {
return is_int($previous) && $current >= $previous;
}, PHP_INT_MIN));
echo $result ? 'true' : 'false';
您可以设置临时变量
<?php
$array = array(1, 2, 2, 3, 4);
$temp = $array[0];
$val = true;
foreach ($array as $key) {
if ($key < $temp) {
$val = false;
break;
} else {
$temp = $key;
}
}
var_dump($val);
您可以将true和false替换为字符串"true"answers"false",然后回显它而不是var_dump
$array = array (1,2,1,4);
$lastChecked = 0;//we need to store the last checked value
foreach($array as $key => $value)
{
//compare the current array value with the last stored one
if($value >= $valastCheckedue)
{
echo "True<br>";
}else{
echo "False<br>";
}
//store the current checked value from the array
$lastChecked = $value;
}
将输出:
正确
正确
错误
真
开始吧。
我用了for循环。当比较阵列中的多个元素时,这是一个biot。如果你是新手/缺乏编码经验,我建议你使用PHP。PHP是我最早学习的语言之一,它并不太难。一旦你熟悉了编码,我就会转向面向对象的语言,比如C、C++、Java。PHP很好,但它是一种脚本语言,有这两种编程语言的经验是很好的。
希望这能有所帮助。
<?php
function CheckArray($arrayToCheck) {
for ($i = 1; $i < count($arrayToCheck); $i++) {
echo(($arrayToCheck[$i]>=$arrayToCheck[$i-1]? $arrayToCheck[$i].">=".$arrayToCheck[$i-1].": True<br />" : $arrayToCheck[$i].">=".$arrayToCheck[$i-1].": False<br />"));
}
}
$array = array(1, 2, 3, 4, 5, 4, 3, 2, 1);
CheckArray($array);
?>
此函数检查数组中从第二个值开始的所有值。
for($i = 1; $i < sizeof($input); $i++)
{
//We check if the value is greater or equal than the one before
if($input[$i] >= $input [$i-1])
//If it is true, we'll display it
echo "True";
//Else, we display false
else
echo "False";
}
您刚刚忘记if:
$input = array (1,4,2,7);
function trueorfalse (array $input)
{
foreach ($input as $key => $value){
if ($value >= $key[0])
print "true";
}
}
trueorfalse($input);
编辑:我及时切换到循环:
function trueorfalse (array $input)
{
for($i = 0; $i < sizeof($input)-1;$i++)
{
echo "$input[$i] >= {$input[$i+1]} => ";
echo ($input[$i] >= $input[$i+1]) ? "true <br>" : "false <br>";
}
}