2015-03-06 1 views
-1

В начале каждого набора идентификаторов пользователей мне нужен перерыв. Есть простой способ сделать это?Перерыв внешних ключей на отдельные строки с петлей

for($i=0; $i<count($image); $i++): 
$image[$i]['userid']; 
$image[$i]['id']; 
endfor; 

Я понятия не имею, с чего начать. Вывод должен выглядеть следующим образом:

ID: 2323 Пользователь: 12
ID: 2323 Пользователь: 13 ID: 2323 Пользователь: 13 ID: 2323 Пользователь: 13
ID: 2323 Пользователь: 14 ID: 2323 Пользователь : 14

и она в настоящее время выглядит следующим образом: ID: 2323 пользователей: 12 ID: 2323 пользователей: 13 ID: 2323 пользователей: 13 ID: 2323 пользователей: 13 ID: 2323 пользователей: 14 ID: 2323 пользователя : 14

ответ

2

Прежде чем я покажу вам мое решение проблемы, я хотел бы знать, почему существует несколько пользователей с одинаковыми userid и id? И в чем разница между типами идентификаторов? Мне это кажется странным, но без дальнейших церемоний давайте доберемся до него.

Я построил небольшой массив данных образца, который напоминает выведенный вами результат.

$users = [ 
    ['userid' => 2323, 'id' => 12], 
    ['userid' => 2323, 'id' => 13], 
    ['userid' => 2323, 'id' => 13], 
    ['userid' => 2323, 'id' => 13], 
    ['userid' => 2323, 'id' => 14], 
    ['userid' => 2323, 'id' => 14], 
]; 

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

$previous = null; 

foreach($users as $info) { 

    $id  = $info['id']; 
    $userid = $info['userid']; 

    if(!is_null($previous) && $previous !== $id) { 
     echo '<br/>'; 
    } 

    echo "id: {$userid} user: {$id} "; 

    $previous = $id; 

} 

Это должно вывести следующее:

id: 2323 user: 12 
id: 2323 user: 13 id: 2323 user: 13 id: 2323 user: 13 
id: 2323 user: 14 id: 2323 user: 14 

Я надеюсь, что это может помочь вам, счастливый кодирования!