PHP - 比较数组的2个值

时间:2017-01-29 22:29:12

标签: php arrays

我有一个关于比较两个数组的问题。 我已经在这个论坛上搜索,但没有像我想要的那样。

$stock = array("7", "5", "3");
$request = array("3", "6", "3");

我想要实现的是,如果$stock中的每个值都高于$request,那么我就可以执行该命令。 但在这种情况下,第2位的请求值高于股票价值(6比5)。

我的问题是,如果$request中的任何值高于$stock中的每个值,那么PHP中的代码如何进行比较? 要么 比较$stock中的每个值是否高于$request中的每个值?

Example of my database

提前谢谢。

2 个答案:

答案 0 :(得分:2)

只需循环遍历数组并比较各个数组中的索引。由于它始终是固定长度,因此不需要进行任何复杂的检查或处理。这假设密钥是由PHP分配的,因此它们都从0开始并且总是增加1。

$stock   = array("7", "5", "3");
$request = array("3", "6", "3");
var_dump(validate_order($stock, $request)); // false

$stock   = array("7", "5", "3");
$request = array("3", "4", "3");
var_dump(validate_order($stock, $request)); // true

function validate_order($stock, $request) {
    foreach ($stock as $key=>$value) // Fixed length, loop through
        if ($value < $request[$key])
            return false; // Return false only if the stock is less than the request
    return true; // If all indexes are higher in stock than request, return true
}

由于此函数返回一个布尔值,true / false,只需在if - 语句中使用它,就像这样

if (validate_order($stock, $request)) {
    /* Put your code here */
    /* The order is valid */
} else {
    /* Order is not valid */
}

Live demo

答案 1 :(得分:1)

function checkOrder($stock,$request){
    for($i=0; $i < count($stock); $i++){
        if($stock[$i] < $request[$i]) return false;
    }
    return true;
}