0

我在将数组中的值与数组中的前一个值进行比较然后执行适当的操作时遇到问题。有些值是相同的,所以我想把它们去掉。

我试图让它做的是根据先前的值询问变量,如果它们相等,则显示除所述值之外的所有其他内容。

这是我的代码。如果它难以阅读,我深表歉意。我是自学的,我尽我所能...

<?php
// Get Variables from dept.php
$location = $_GET['location'];
$dept = $_GET['dept'];
// Connect to Database
$connect = mysql_connect('localhost', 'UserName', 'Pass');
mysql_select_db('database', $connect);
// Create Recordset       
$iso_sql = " SELECT * FROM `a_qa-iso_data`, `a_qa-iso_category` WHERE `a_qa-iso_data`.Article_Numbers = `a_qa-iso_category`.Article_No AND `a_qa-iso_data`.$location = 1 AND `a_qa-iso_data`.$dept = 1 ORDER BY `a_qa-iso_data`.Article_Numbers, `a_qa-iso_data`.Filename ASC;";
$iso_results = mysql_query($iso_sql, $connect) or die(mysql_error());
$rows_iso_results = mysql_num_rows($iso_results);
// Loop Results
while ($iso_array = mysql_fetch_array($iso_results)) {
    $article = $iso_array['Article_Numbers'];
    $title = $iso_array['Title'];
    $link = $iso_array['Link'];
    $class = $iso_array['Class'];
    $target = $iso_array['Target'];
    $filename = $iso_array['Filename'];
    $header = "<h4>$article - $title</h4>";
    $iso = "<a href=\"$link\" class=\"$class\" target=\"$target\">$filename</a>";
 // Display   
    $next = prev($iso_array);
    if ($next['Article_Numbers'] === $article) {
        echo "$iso";
    }
    else {
        echo "$header $iso";
    }
}
?>

简而言之,我正在寻找类似的东西:

$article - $title
-$iso

$article - $title
-$iso
-$iso

$article - $title
-$iso
-$iso
-$iso

$article - $title
-$iso

无论如何,任何帮助将不胜感激。如果之前有人问过这个问题,我也很抱歉,但是我花了很多时间寻找,我发现的内容似乎没有我希望的那么丰富。

4

1 回答 1

2

为什么不为“previous”的值设置一个临时变量?

$previous = null;
while($iso_array = mysql_fetch_array($iso_results)) {
    // code 
    .
    .
    .

    if (!is_null($previous) && $previous['Article_numbers'] == $article) {
        // something
    } else {
        // something else
    }
    $previous = $iso_array;
}

注意:您应该停止使用mysql_*函数。它们正在被弃用。而是使用PDO(从 PHP 5.1 开始支持)或mysqli(从 PHP 4.1 开始支持)。如果您不确定要使用哪一个,请阅读这篇文章

于 2012-08-16T19:48:06.223 回答