2013-09-28 5 views
0

Эй, ребята, проблема с in_array не возвращается.проблемы с php in_array

мой код выглядит следующим образом:

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

это просто тестовый код. $ this-> условия устанавливается в то еще в файлах, и это выглядит следующим образом:

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) 
+0

Делает var_dump в $ this-> условия, чтобы увидеть именно то, что она не содержит (например, без пробелов и других невидимых символов) –

+0

'$ this-> conditions' является объектом, который вы можете проверить с помощью' is_object() '. '$ this-> условия [0]' будут делать для вас. –

ответ

4

У вас есть вложенный массив. Попробуйте это:

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

    if (in_array('item_name', $arr)) { 
     print "test"; 
    } 
} 
+0

проблема заключается в том, что условия могут иметь несколько массивов – misulicus

+0

использовать цикл foreach. Я обновил свой пост. –

0

пожалуйста, попробуйте этот

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

Я надеюсь, что это поможет вам

0

PHP DOC :

in_array — Checks if a value exists in an array 

in_array() обыкновение возвращать верно, потому что нет никакого значения "item_name". Сначала вы должны извлечь внутренний массив. Это: in_array('item_name', $this->conditions[0]) возвратит true

Смежные вопросы