2014-12-15 3 views
-2

У меня есть цикл Еогеаспа в PHP:Показать все уникальные строки в PHP Loop

$Directli = new Directli(); 
$output = $Directli->build_query('getPayments'); 
foreach($output as $row) { 

} 

я хочу повторить информацию внутри цикла, но только каждый уникальный ряд на основе $row->ID

+0

Извините, что вам нужно? –

+0

, чтобы показать каждую строку, которую возвращает цикл, но только уникальные строки (где уникальный идентификатор) – user2710234

+3

Возможно, вы захотите использовать 'array_unique': http://php.net/manual/en/function.array-unique.php – naota

ответ

3

заканчивал array_unique. Вы можете вызвать его перед циклом, чтобы получить массив с уникальными элементами. Если вы не можете использовать его, чем вы должны построить хэш внутри цикла, чтобы проверить, если элемент был уже обработан или нет:

$map = array(); 
foreach($output as $row) { 
if (!isset($map[$row->ID])) { 
    $map[$row->ID] = true; 
    echo $row->ID; 
} 
} 
+0

После его редактирования я предполагаю, что он во втором случае. Он должен построить разделенный со всем обработанным идентификатором. – user2360915

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; 

    } 
    ?> 
1

в качестве альтернативы можно создать контейнер, который будет содержать идентификаторы , затем проверьте внутри цикла, если его еще нет, нажмите его внутри.

$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 вместо.

0
**use array_unique:** 

$result = array_unique($input); 
print_r($result); 
where $input = array("a" => "green", "red", "b" => "green", "blue", "red"); //for example 
Смежные вопросы