是否可以比较两个数组值?
说:
Array 1> Array 2>
Values: Values:
2 11
36 13
65 11
78 1
代码示例:
If (Array1 >= Array2){
echo"Not Available";
}
else
{
echo"Available";
}
预期结果:
Array ("Not Available",
"Available",
"Available",
"Available")
答案 0 :(得分:2)
如果两个数组的长度相同,则可以使用如下所示的for循环
$temp = [];
for($i = 0; $i < count($array1);$i++){
$temp[] = (($array1[$i] >= $array2[$i]) ? 'Not Available': 'Available');
}
print_r($temp);
答案 1 :(得分:1)
您可以执行以下简单操作:
function compareArrays(array $array1, array $array2): array
{
$itemCount = (count($array1) > count($array2)) ? $array1 : $array2;
$returnArray = [];
for($i = 0; $i < count($itemCount); $i++) {
$returnArray[] = ($array1 >= $array2) ? 'Avalible' : 'Not Avalible';
}
return $returnArray;
}
主要原因是我们从您的帖子中不知道数组是否总是相同大小,因此您必须比较它们以获取两个数组中的较大者,然后将其用于循环。之后就是简单的比较。
答案 2 :(得分:1)
您可以将回调函数与array_map
函数一起使用。
<?php
function getResult($first, $second)
{
return $first > $second ? 'Available' : 'Not Available';
}
$firstArray = [1,4,5,6];
$secondArray = [2,3,1,9];
$data = array_map('getResult', $firstArray, $secondArray);
echo '<pre>',print_r($data),'<pre>';
?>
您也可以自定义函数内部的逻辑以获取更复杂的逻辑。您可以根据需要添加任意数量的阵列。希望你能理解。
答案 3 :(得分:0)
是的,可以使用以下简单的for循环:
for($i = 0; $i < count($array1); $i++){
if($array1[$i] >= $array2[$i]){
echo "Available"
}else{
echo "Not available";
}
}
注意,此处两个数组的大小必须相同。
答案 4 :(得分:0)
如果array1和array2的大小始终相同,那么简单的解决方法
$data = [];
foreach($array1 as $key => $value) {
if (!isset($array2[$key])) { // for safety check for second array index bound
break;
}
$data[] = $value >= $array2[$key] ? 'Not Available' : 'Available';
}
return $data;