Php Laravel 比较 2 个数组值

Php Laravel Comparing 2 Array Values

是否可以比较两个数组值?

说:

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")

如果两个数组长度相同,可以使用for循环,如下所示,

$temp = [];
for($i = 0; $i < count($array1);$i++){
    $temp[] = (($array1[$i] >= $array2[$i]) ? 'Not Available': 'Available');
}
print_r($temp);

您可以像这样简单地做一些事情:

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;
    }

主要原因是我们无法从您的 post 得知数组的大小是否始终相同,因此您必须比较它们以获得两者中较大的一个,然后将其用于循环。之后就是简单的比较了。

是的,可以使用如下简单的 for 循环:

for($i = 0; $i < count($array1); $i++){
  if($array1[$i] >= $array2[$i]){
    echo "Available"
  }else{
    echo "Not available";
  }
}

注意 这里两个数组的大小必须相同。

如果 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;

您可以像这样将回调函数与 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>';

?>

对于更复杂的逻辑,您也可以自定义函数内部的逻辑。您可以根据需要添加任意数量的数组。希望大家理解。