我有一个关于比较两个数组的问题。 我已经在这个论坛上搜索,但没有像我想要的那样。
$stock = array("7", "5", "3");
$request = array("3", "6", "3");
我想要实现的是,如果$stock
中的每个值都高于$request
,那么我就可以执行该命令。
但在这种情况下,第2位的请求值高于股票价值(6比5)。
我的问题是,如果$request
中的任何值高于$stock
中的每个值,那么PHP中的代码如何进行比较?
要么
比较$stock
中的每个值是否高于$request
中的每个值?
提前谢谢。
答案 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 */
}
答案 1 :(得分:1)
function checkOrder($stock,$request){
for($i=0; $i < count($stock); $i++){
if($stock[$i] < $request[$i]) return false;
}
return true;
}