在foreach中使用in_array并取出数组具有匹配值

时间:2014-04-17 12:23:43

标签: php

我在in_array()循环中使用foreach时遇到问题。我有一个像这样的数组

[0] =>
    name=>1
    type=>foo
[1] =>
    name=>2
    type=>bar
[2] =>
    name=>3
    type=>bar
[3] =>
    name=>4
    type=>foo

我正在使用

if(in_array('foo',$array->type){ *my echo code*}

取出所有具有type = foo的数组,但它也取出了不匹配的数组。我哪里错了?

3 个答案:

答案 0 :(得分:1)

在您的情况下$array->type不是数组。这是一个字符串。 你应该把它比作字符串比较。

if('foo' === $array['type']){ *my echo code*}

您还可以更改阵列访问权限。

答案 1 :(得分:0)

也许你做错了..

foreach($yourarr as $k=>$arr)
{
 if(in_array('foo',$arr))
 {
   echo key($arr); //"prints" name , name
 }
}

Working Demo

答案 2 :(得分:0)

您需要数组语法和比较:

if('foo' == $array['type']) {
  /* your code */
}