0

嘿,伙计们遇到了 in_array 没有返回 true 的问题。

我的代码如下:

if ( in_array( 'item_name', $this->conditions ) ) {
        print "test";
}

这只是一个测试代码。$this->conditions 设置在文件的其他位置,它看起来像这样:

Array
(
[0] => Array
    (
        [operator] => 
        [property] => item_name
        [logic] => contains
        [value] => the age
    )

)

它没有打印“测试”;我究竟做错了什么 ?

var_dump 添加如下:

array (size=2)
0 => 
array (size=4)
  'operator' => string '' (length=0)
  'property' => string 'item_name' (length=9)
  'logic' => string 'contains' (length=8)
  'value' => string 'the age' (length=7)
1 => 
array (size=4)
  'operator' => string 'or' (length=2)
  'property' => string 'item_name' (length=9)
  'logic' => string 'ends' (length=4)
  'value' => string 'malouf' (length=6)
4

3 回答 3

4

你有一个嵌套数组。尝试这个 :

foreach ($this->conditions as $arr) {

    if ( in_array( 'item_name', $arr ) ) {
       print "test";
    }
}
于 2013-09-28T11:48:17.477 回答
0

请试试这个

foreach($this->conditions as  $condition){
 if(in_array( 'item_name',  $condition))
     echo 'test';
};

我希望这能帮到您

于 2013-09-28T11:52:15.740 回答
0

PHP文档:

in_array — Checks if a value exists in an array

in_array()不会返回 true 因为没有值"item_name"。您必须先提取内部数组。这:in_array( 'item_name', $this->conditions[0])将返回true

于 2013-09-28T11:52:32.247 回答