У меня есть следующий код, который я использую на WordPress:
if($terms && !is_wp_error($terms) ) {
$colors = array();
foreach ($terms as $term) {
$colors[] = '\'' . $term->slug . '\'';
}
}
print_r(array_values($thePack));
Переменная $color
Теперь это базовый массив, который print_r
отображается так:
Array (
[0] => 'white'
[1] => 'green'
)
Я хотел бы сделать условие, чтобы распознать, имеет ли массив конкретное значение или нет, например:
if(in_array('white', $colors) {
echo "This is white";
}
Тем не менее, это не работает вообще, потому что in_array
не распознает значение в массиве!
Как я мог заставить условие работать?
Значения вашего массива (имена цветов) включают одинарные кавычки, которые необходимо включить при поиске значения:
if(in_array("'white'", $colors) {
// ...
}
Почему бы не сделать что-то вроде этого:
while(list($key, $value) = each($array)){
if($value == 'white'){
echo 'this is white';
}
}
Проблема в том, что вы экранируете цвет в массив. Вместо того, чтобы использовать
$colors[] = '\''.$term->slug.'\''
Просто делать
$colors[] = $term->slug
И когда вы выводите слаг на веб-страницу или в базу данных, вы избегаете его.