0

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

URL 类似于 domain.com/page/C12&C14

C12 和 C14 代表不同的类别。我已经获取了 url 的最后一位,从值中删除了“C”,然后将 12&14 分解为一个数组。

我 print_r 页面上的数组,它显示: Array ( [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 的任何想法?

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

4

1 回答 1

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
于 2012-10-06T09:36:01.393 回答