我使用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");
然后我可以显示一条自定义信息,任何人都有一个我能看到的例子吗?
答案 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)
如果符合以下条件,则检查为真:
$uniqueFruits = array_unique($fruit); if (count($uniqueFruits) == 1 && $uniqueFruits[0] == 'grape') { // Only 'grape' in here } elseif() { // Some other check } else { // Otherwise }