2014-08-11 4 views
0

я в настоящее время имеют Еогеасп внутри Еогеасп, Ehre мой код:WordPress петля вложенная Еогеасп

$blogusers = get_users(); 
global $post; 
$my_query = get_posts('showposts=-1&post_type=friend_requests&post_status=publish'); 
//query_posts(array('showposts' => -1, 'post_type' => 'friend_requests', 'post_status' => array('publish'))); while (have_posts()) : the_post(); 

foreach($my_query as $post) : 

    //do stuff 

    foreach ($blogusers as $user) { 

     echo $user; 

    } 

endforeach; 
wp_reset_query(); 

Моя проблема заключается в том, что в зависимости от количества элементов в $my_query массиве это будет дублировать вывод, когда я эхо $user. Так, например, если есть один пункт в $my_query и 3 шт в $blogusers выход будет выглядеть следующим образом:

User 1 
User 2 
User 3 

Однако, если есть 2 вещи в $my_query и 3 в $blogusers выход будет выглядеть следующим образом:

User 1 
User 2 
User 3 
User 1 
User 2 
User 3 

Есть ли какая-то особая причина, почему это происходит?

+0

Это связано с вашим синтаксисом. Ваш цикл печатает так: '$ my_query [1] -> пользователь 1, пользователь 2, user3; $ my_query [2] -> пользователь 1, пользователь 2, пользователь 3; 'и т. д. и т. д. и т. д. Я точно не знаю, чего вы пытаетесь достичь из этого кода, так что можно ли получить дополнительную информацию об его использовании? – Stewartside

+0

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

ответ

0

Вы просите его прокручивать каждое сообщение, и для каждого из этих сообщений для каждого пользователя - это то, что делает цикл внутри цикла. Если вы хотите, чтобы пользователи выходили выше или ниже сообщений в блоге, затем перемещайте петлю пользователей выше или ниже цикла $my_query.

Например:

foreach ($my_query as $post) : 
    //do stuff 

endforeach; 

foreach ($blogusers as $user): 
    echo $user; 
endforeach; 
0

Давайте посмотрим, смогу ли я объяснить это в понятной форме.

Что Еогеасп означает:

foreach($my_query as $post) : 

Это означает, что для каждого элемента в $my_query, он будет делать то, что между foreach и endforeach.

Внутри этого foreach есть новый foreach.

Это означает, что для $my_query номер 1, он будет делать следующее:

foreach ($blogusers as $user) 

Это означает, что он получит $blogusers, и для каждого $user, он выводит, что пользователь.

После этого, он будет делать одно и то же для $my_query числа 2.

Имеет ли это смысл для вас?

Смежные вопросы