我遇到了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?
变量是否是错误的字符串类型 - 如果是,我将如何转换它?
答案 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