php Laravel比较2数组值

时间:2019-05-08 13:06:04

标签: php arrays laravel laravel-5.4

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

说:

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

5 个答案:

答案 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;