PHP: проверьте, является ли ключ массива определенной строкой - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь создать оператор if.на основе строки

$var = "Apple : Banana";
$array = explode(":", $var);
print_r($array); //array([0] => 'Apple' [1] => 'Banana')

if ($array[1] == "Banana") {
  echo "Banana!";
}

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Ваше условие не работает, потому что у каждого элемента массива есть место.Вы должны удалить лишние пробелы.Вы можете использовать функцию trim для удаления пробелов и функцию array_map для применения trim в каждом элементе массива.Например:

$var = "Apple : Banana";
$array = array_map('trim', explode(":", $var));
if ($array[1] == "Banana") {
  echo "Banana!";
}

результат:

Банан!

0 голосов
/ 12 декабря 2018

Вы можете сделать это, используя preg_split и regex

$parts = preg_split('/\s+\:\s+/', $var);

Тогда на $ parts вы получите:

array (2) {[0] => string (5) «Яблоко» [1] => строка (6) «Банан»}

0 голосов
/ 12 декабря 2018

В строке есть пробел до и после :, поэтому массив будет

array(2) { 
    [0]=> string(6) "Apple " 
    [1]=> string(7) " Banana" 
}

Вам необходимо удалить пробел из элементов, используя trim(), а затем сравнить его.

$var = "Apple : Banana";
$array = explode(":", $var);

if (trim($array[1]) == "Banana") {
    echo "Banana!";
}
...