【问题标题】:determine if a variable is equal to any variable in an array in php [duplicate]确定变量是否等于php中数组中的任何变量[重复]
【发布时间】:2017-09-15 22:13:10
【问题描述】:

有没有办法确定一个变量是否等于数组中任何变量的值? 例如,

IF ($a == $b) {
 echo "there is a match";
}
//where $b is an array of values
//and $a is just a single value

【问题讨论】:

  • 你试过循环数组吗?如果没有内置的,那将是直接的方法。
  • 所以基本上你想检查一个数组是否包含某个值?
  • 数组不包含变量,它们包含值。
  • array_intersect() 比 in_array() 快很多

标签: php


【解决方案1】:

Sure there is.

if (in_array($a, $b)) {
    echo "there is a match";
}

如果变量$a类型需要匹配$b中值的类型,你应该使用严格比较来确保你不会得到像

in_array(0, ['abc', '', 42]) // returns true because 0 == ''

通过将in_array 的第三个参数设置为true 来实现。

in_array(0, ['abc', '', 42], true)  // returns false because 0 !== ''

【讨论】:

  • 解决了很多问题...谢谢!
  • 我有string(1) "2"array(1) { [0]=> array(1) { ["node_id"]=> string(1) "2" } }。但是if(in_array($res['floor_id'],$result)) { echo "there is a match"; } else { echo "no match"; } 没有匹配项
  • @FaisalQayyum 看起来字符串“2”不是直接在数组中,而是在数组内部的数组中。 in_array 不会查看内部数组。对于这种情况,您可以使用array_filter,如下所示:3v4l.org/Eag87C
【解决方案2】:

试试这个

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");

if (in_array("Glenn", $people))
  {
  echo "Match found";
  }
else
  {
  echo "Match not found";
  }
?>

https://www.w3schools.com/php/func_array_in_array.asp

【讨论】:

    【解决方案3】:

    您可以使用in_array function检查该值是否存在于数组中:

    in_array('a', array('a', 'b')); // true
    in_array('a', array('b', 'c')); // false
    

    【讨论】:

      【解决方案4】:
      $b = array("Mac", "NT", "Irix", "Linux");
      $a = "single string"
      if (in_array($a, $b)) {
          echo "Yes single string is in array";
      }
      

      这里是 php 手册的描述:http://php.net/manual/en/function.in-array.php

      【讨论】:

        【解决方案5】:

        试试这个:

        $a = '10';
        $b = ['1', 24, '10', '20'];
        if (in_array($a, $b)){
            print('find');
        }
        

        【讨论】:

          猜你喜欢
          • 2020-01-16
          • 2013-03-24
          • 2015-12-22
          • 1970-01-01
          • 1970-01-01
          • 2018-10-06
          • 1970-01-01
          • 1970-01-01
          • 2018-12-31
          相关资源
          最近更新 更多