-1

我在 php 中有两种可能的数组配置,如下所示:

$array = array(
    "0" => "137",
    "1" => "137",
    "2" => "137",
    "3" => "137",
    "4" => "137"
);

$array = array(
    "0" => "137",
    "1" => "200",
    "2" => "31",
    "3" => "19",
    "4" => "400"
);

我不是想将数组相互比较。

具体数字是“137”或任何其他数字并不重要,我需要知道的是如何以编程方式确定第一个数组是“真”,因为它的所有值都是相同的。第二个数组是“假的”,因为它们是不同的。第二个也可以有任何随机集,包括一堆相同的数字和一个不同的数字。

我真的不在乎什么数字不同,只要它们都相同。我现在正在研究,但我不确定要寻找什么,就术语而言。

4

2 回答 2

8
if (count(array_unique($array)) > 1) {
    // not all elements are the same
}
于 2013-03-20T12:57:24.107 回答
1

您可以使用 array_unique 函数php array_unique

如果结果数组的计数为 1,则所有值都相同。

或者最好只遍历数组直到找到一个不同的值,这有更糟糕的情况 o(n)

编辑:请注意 count(array_unique($array)) 更干净但效率较低,但仍然 o(n) (总是 o(n) 不仅仅是更糟的情况)。

于 2013-03-20T12:59:29.180 回答