我在Behat Mink中使用以下PHP函数来检查Email列值是按升序还是降序。但问题是它总是失败。我只想检查所有行中的主题或From of Email列是按升序和降序排列。还有其他办法吗?
public function ValidateColumnSorting($Column, $order) {
$nodes = // Logic goes to retrieve all rows subject or from column value
if (strcasecmp($order, "asc") == 0)
{
for ($i = 1; $i < $sizeof($nodes); $i++)
{
if (strcasecmp($nodes[$i], $nodes[$i - 1]) >= 0)
{
print_r("Row " . $i - 1 . " val is " . $nodes[$i - 1]);
}
else if (strcasecmp($nodes[$i], $nodes[$i - 1]) < 0)
{
throw new Exception($Column . " column ascending sort order failed.".$nodes[$i] . " is less than " . $nodes[$i - 1]);
}
}
}
else
{
for ($i = 1; $i < $sizeof($nodes); $i++)
{
print_r($Column . " column row " . $i . " value is " . $nodes[$i]);
if (strcasecmp($nodes[$i], (string) $nodes[$i - 1]) <= 0) {
print_r($Column . " of Email is same");
} else if (strcasecmp($nodes[$i], $nodes[$i - 1]) > 0) {
throw new Exception($Column . " column descending sort order failed." . $nodes[$i] . " is greater than " . $nodes[$i - 1]);
}
}
}
}
答案 0 :(得分:0)
您可以直接按升序或降序对其进行排序,而不是检查其顺序。 将主题或电子邮件数组传递给sort()函数
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
它将返回已排序的数组
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
您无需手动执行此操作。 在这里阅读更多http://in2.php.net/sort
答案 1 :(得分:0)
不考虑是否有更适合的方式来验证元素的顺序,您的代码可能会因$sizeof($nodes)
而失败,请尝试sizeof($nodes)
。
在Behat中,我将采用的方法是创建一个可以在别处重复使用的通用步骤定义......
Then I should see the "css_to_some_elements" ordered as:
| apple |
| banana |
| lemon |