PHP Laravel比较两个数组的值

3

能否比较两个数组的值?

例如:

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

你能解释得更详细一些吗?这里的“比较”是什么意思? - nice_dev
比较数组1 [0] 和数组2 [0] 的值,并给出“不可用”或“可用”等结果。这是可能的吗? - F.ture
顺序重要吗? - Kyle Wardle
“可用”或“不可用”是什么意思?这与Laravel有什么关系? - Nico Haase
5个回答

2
你可以像这样使用回调函数和 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>';

?>

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

原始答案:最初的回答


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

主要原因是从您的帖子中我们不知道数组是否始终具有相同的大小,因此您必须比较它们以获取其中较大的一个,然后将其用于循环。之后只需要进行简单的比较即可。

你的 $itemCount 生成方式有点啰嗦(在我看来)- 你可以只使用 $itemCount = max(count($array1), count($array2)); - Nigel Ren

0
如果两个数组长度相同,您可以使用以下for循环,
$temp = [];
for($i = 0; $i < count($array1);$i++){
    $temp[] = (($array1[$i] >= $array2[$i]) ? 'Not Available': 'Available');
}
print_r($temp);

0

是的,可以使用简单的for循环来实现,如下所示:

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

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


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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接