试图匹配PHP数组中的变量

时间:2012-10-06 09:29:41

标签: php arrays string variables

我遇到了php数组问题。我去了一个从URL获取值的网页,我需要在页面上的某些值上交叉引用这些值,如果它们匹配输出“是”。这是表达引擎的躲闪工作。

网址类似于domain.com/page/C12&C14

C12和C14代表不同的类别。我已经取了url的最后一位,从值中删除了'C'然后将12& 14爆炸成阵列。

我打印页面上的数组,它显示:数组([0] => 12 [1] => 14)

因此,值在数组中。可爱。

现在在页面上我有一个看起来像

的html列表

10
12个
14个
15个

我想在数组中当前变量旁边输出YES,这样理想的输出就是:

10
12 - 是
14 - 是
15个

我正在尝试这个,但它只是说不在他们旁边。

$currentnumber = 12;
foreach ($tharray as $element) { 
if ($element == $currentnumber) { echo "Yes"; } else { echo "No"; }  
}

我认为这应该有效,但事实并非如此。我检查了,数组和变量都是蜇。我在两者上做了一个strlen(),看看它们是否相同,但$ currentnumber输出'13',数组变量输出'2'。

为什么它说13?

变量是否是错误的字符串类型 - 如果是,我将如何转换它?

1 个答案:

答案 0 :(得分:0)

你可以尝试

$tharray = array(10,12,14,15);
$allowed = array(12,14);

echo "<pre>";
foreach ( $tharray as $element ) {
    if (in_array($element, $allowed)) {
        echo $element, " -  Yes ", PHP_EOL;
    } else {
        echo $element , PHP_EOL ;
    }
}

如果你不介意一行解决方案

array_walk($tharray, function($item)use($allowed) { echo in_array($item, $allowed) ?  $item. " -  Yes ". PHP_EOL : $item . PHP_EOL  ;});

输出

10
12 -  Yes 
14 -  Yes 
15