PHP in_array如果只是项目

时间:2017-06-13 23:22:59

标签: php arrays

我使用in_array来检测某个值是否在PHP数组中,我的数组看起来像这样......

$fruits = array("banana", "grape", "orange", "apple");

/* is grape in the array */
if (in_array('grape', $fruits)) {
    echo 'Grape Detected';
} else {
    echo 'Grape not detected';
}

我正在尝试对其进行修改,以便它还可以检测到什么时候葡萄'是数组中唯一的项,所以如果数组看起来像这样......

$fruits = array("grape", "grape", "grape");

...或

$fruits = array("grape");

然后我可以显示一条自定义信息,任何人都有一个我能看到的例子吗?

6 个答案:

答案 0 :(得分:2)

检查是否有多个元素,以及它是否符合您的条件。

if(count($fruits) === 1 && in_array('grape', $fruits)) {
    echo "There's only one fruit here, and it's a grape!";
}

编辑:

你可以检查'grape'是否是数组中唯一的东西,以及有多少是这样的:

$condition_met = false;
foreach ($fruits as &$iterator) {
    if($iterator !== 'grape') {
        $condition_met = true;
    }
}

if($condition_met === false)
{
    echo 'There are only grapes in this fruits basket! There are ' . count($fruits) . ' unique beauties!';
}

答案 1 :(得分:1)

要仅在'grape'是列表中唯一的水果时显示自定义消息,您可以将代码更改为:

/* is grape in the array */
if (in_array('grape', $fruits)) {
    if (count(array_unique($fruits)) === 1) {
        echo 'Grape is the only fruit in the list';
    } else {
        echo 'Grape detected';
    }
} else {
    echo 'Grape not detected';
}

答案 2 :(得分:1)

这是最简单的方法:

if (array_unique($fruits) === array('grape')) {
    echo 'Grape Detected';
}

说明: array_unique从数组中删除所有重复值。如果“grape”是数组中的唯一项,则array_unique($fruits)的结果应等于array('grape')===运算符检查两个值是否为数组,并且它们都具有相同的元素。

答案 3 :(得分:0)

试试这个,

使用array_count_values内置函数。

<?php
$fruits = array("banana", "grape", "orange", "apple","grape", "grape",     "grape");
$tmp_fruits = array_count_values($fruits);
/* is grape in the array */
foreach($tmp_fruits as $fruit=>$total){
    echo $fruit." Detected ".$total." Times."."<br />";
}
?>

答案 4 :(得分:-1)

您可以使用array_count_values()功能。这将返回一个新数组,其中包含重复项目的次数。

<?php
    $fruits = array("grape", "grape", "grapr");

    $vals = array_count_values($fruits);
    echo 'Unique Items: '.count($vals).'<br><br>';
    print_r($vals);
?>

将输出:

Unique Items: 2

Array ( [grape] => 2 [grapr] => 1 ) //Shows the item in the array and how many times it was repeated

然后,您可以遍历新数组$vals,以查找项目重复的次数并显示相应的消息。

希望它可以帮助你。

答案 5 :(得分:-1)

如果符合以下条件,则检查为真:

  • 数组只有'Grape'
  • 无论是否存在 多个'Grape'条目
$uniqueFruits = array_unique($fruit);

if (count($uniqueFruits) == 1 && $uniqueFruits[0] == 'grape') {
     // Only 'grape' in here
} elseif() {
  // Some other check
} else {
  // Otherwise
}