我在将数组中的值与数组中的前一个值进行比较然后执行适当的操作时遇到问题。有些值是相同的,所以我想把它们去掉。
我试图让它做的是针对前一个值询问变量,如果它们相等,则显示除所述值之外的其他所有内容。
这是我的代码。如果难以阅读,我深表歉意。我是自学成才的,我尽力而为...
<?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
无论如何,任何帮助将不胜感激。如果之前有人问过这个问题,我也深表歉意,但是,我花了很多时间寻找,我发现的内容似乎并不像我希望的那样信息丰富。
为什么不为"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 开始支持)。如果您不确定要使用哪一个,请阅读本文。