来自文本

时间:2016-10-19 23:09:12

标签: php arrays

我有这段代码

<?php
$numbers = "'10', '20', '30'";
$the_array = array($numbers);
$match = "20";
if (in_array($match, $the_array)) echo "OK";
?>

但是它没有用,所以如何定义 $ numbers $ the_array 才能使其正常工作?如果我回显 $ numbers ,则会显示:

'10', '20', '30'

如果我这样说:

$the_array = array('10', '20', '30');

它有效,但它不像上面的代码那样工作。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用以下方式执行此操作:

<强> explode()

see live demo

$numbers = "'10', '20', '30'";
$the_array = explode("'", $numbers);
$match = "20";

if (in_array($match, $the_array)) echo "OK";

或与:

<强> str_getcsv()

see live demo

$numbers = "'10', '20', '30'";
$the_array = str_getcsv($numbers, "'");
$match = "20";

if (in_array($match, $the_array)) echo "OK";

答案 1 :(得分:0)

初始化$numbers时,您没有将其初始化为具有三个值的数组,而是初始化为字符串。例如,如果您将其初始化为:

$numbers = "There are '12' inches in a foot";

你回应它,你会得到:

  

一只脚有“12英寸”

这是因为字符串被回显。这就是你做的。而是将$numbers初始化为数组。如果您希望数组的元素是数字,请执行以下操作:

$numbers = array(10, 20, 30); 

如果您希望它们成为字符串,请执行以下操作:

$numbers = array('10', '20', '30');