我在PHP中有一个foreach循环:
$Directli = new Directli();
$output = $Directli->build_query('getPayments');
foreach($output as $row) {
}
我希望回显循环内的信息,但只根据$row->ID
答案 0 :(得分:3)
结帐array_unique。您可以在循环之前调用它,以获取具有唯一项的数组。如果你不能使用它,那么你必须在循环中构建一个哈希,检查项目是否已被处理:
$map = array();
foreach($output as $row) {
if (!isset($map[$row->ID])) {
$map[$row->ID] = true;
echo $row->ID;
}
}
答案 1 :(得分:1)
作为替代方案,你可以创建一个容纳id的容器,然后在循环内检查它是否还在那里,将其推入内部。
$ids = array();
foreach($output as $row) {
if(!in_array($row->ID, $ids)) {
$ids[] = $row->ID;
// other process below that you need to do
echo $row->ID;
}
}
如果此结果数组来自SELECT
语句,请考虑使用DISTINCT
子句。
答案 2 :(得分:0)
请确保您已使用您的代码,示例和理论格式化您的问题。
<?php
.. // your connections etc .. //
$sql = mysql_query("SELECT * FROM `something` WHERE `id`='$id'"); // $id you are giving here $row->ID
$res = mysql_fetch_array($sql);
$output = array($res);
foreach($output as $row => $result)
{
echo $result;
}
?>
您也可以使用
<?php
.. // your connections etc .. //
$sql = mysql_query("SELECT * FROM `something` WHERE `id`='$id'"); // $id you are giving here $row->ID
while($res = mysql_fetch_array($sql));
{
echo $result;
}
?>
答案 3 :(得分:0)
**use array_unique:**
$result = array_unique($input);
print_r($result);
where $input = array("a" => "green", "red", "b" => "green", "blue", "red"); //for example