我从云应用程序的各个用户那里获得了300+
行数据。用户正在移动设备和计算机上使用Web应用程序。由于我们使用的是响应式设计,因此我们知道用户使用什么来访问应用程序。
我们对像这样的知名制造商感兴趣
<?php
$dbh = new PDO('mysql:host=localhost;dbname=qs', 'qs_root', 'lepasswort');
$fc = $dbh->prepare("select str from test_str");
$fc->execute();
$i = 0;
while($result = $fc->fetch(PDO::FETCH_ASSOC)){
$one = $result['str'];
$cmd = "/usr/bin/perl str_processor.pl '$one' ";
$output = shell_exec($cmd);
$arr = explode( ',', $output);
$the_type = $arr[0];
if($the_type == 'samsung'){
echo 'samsung';
}
if($the_type == 'nokia'){
echo 'samsung';
}
if($the_type == 'iphone'){
echo 'samsung';
}
if($the_type == 'ipad'){
echo 'samsung';
}
else{
echo 'exception';
}
}
?>
知名品牌有samsung
,nokia
,iphone
等。
然而,有许多品牌并不为人所知,我们想忽略它们。
我的脚本看起来像我上面写的那样,只是我把实际代码留在了我的if之间。
当我运行脚本时,我得到exception
意味着ifs中的所有代码都没有被执行。这里if
是正确的方法吗?。
注意:
我已检查并反核对我的pl
脚本及其正确,因此不可能。
答案 0 :(得分:1)
您必须使用elseif
,否则您将获得&#34;例外&#34;每次终端不是ipad。所有条件都是相互排斥的。
if ($the_type == 'samsung') {
echo 'samsung';
} elseif ($the_type == 'nokia') {
echo 'nokia';
} elseif ($the_type == 'iphone') {
echo 'iphone';
} elseif ($the_type == 'ipad') {
echo 'ipad';
} else {
echo 'exception';
}
另一种方法是使用数组:
$models = ['samsung', 'nokia', 'iphone', 'ipad'];
if (in_array($the_type, $models))
echo $the_type;
else
echo 'exception';
如果您没有获得除&#34;例外情况&#34;之外的任何结果,请使用$the_type
检查var_dump
以确保其包含您希望的结果。