【问题标题】:PHP: Check if array key is specific stringPHP:检查数组键是否为特定字符串
【发布时间】:2019-05-13 08:52:06
【问题描述】:

我正在尝试创建一个 if 语句。基于字符串的

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

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

【问题讨论】:

  • 请修剪值,然后检查“香蕉”

标签: php arrays string if-statement explode


【解决方案1】:

您可以使用 preg_split 和 regex 来做到这一点

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

然后在 $parts 你会得到:

array(2) { [0]=> string(5) "苹果" [1]=> string(6) "香蕉" }

【讨论】:

  • 当然,但是下面的修剪版本感觉更简单
【解决方案2】:

字符串在:前后都有空格,所以数组会是

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

您需要使用trim() 从项目中删除空格,然后进行比较。

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

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

【讨论】:

  • $array = explode(" : ", $var);
  • 是的@RiggsFolly 您应该将其发布为答案。更简单
  • 不,实际上我认为您的方法更可靠。如果他们得到$var = "Apple : Banana:Orange"; 作为字符串
  • 好吧,现在我只是觉得自己很笨 :) 非常感谢你!我还建议这样做的人将每个修剪后的值存储在新变量中:$value_a = trim($array[0]); $value_b = trim($array[1]);
【解决方案3】:

您的条件不起作用,因为数组的每个元素都有空间。您应该删除多余的空格。您可以使用trim 函数删除空格,并使用array_map 函数在数组的每个元素中应用trim。 例如:

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

结果:

香蕉!

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2013-01-12
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多