Получение идентификаторов блога с несколькими сайтами, каким-то образом не удается их правильно передать


Работаю над списком каталогов и собрал самый короткий запрос, какой только могу. Похоже, что он возвращает список в порядке (я думаю), но foreach каким-то образом не может правильно обработать массив. Кто-нибудь может подсказать мне, что я делаю не так?

global $wpdb; 
$site_blog_ids = array($wpdb->get_results($wpdb->prepare("SELECT blog_id FROM wp_blogs     where blog_id > 1"))); // get all subsite blog ids

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) ) "

foreach( $site_blog_ids as $site_blog_id ) { //iterate through the ids
print_r( "siteid ".$site_blog_id ); // checkem - this just outputs "array array" ?? 

Идентификаторы блогов каким-то образом не проходят через foreach должным образом, он просто выводит "массив массива", тогда как он должен отображать список идентификаторов блогов. Похоже ли это на проблему с массивом $site_blog_ids или я что-то еще напутал?

Спасибо за любую помощь! Дэвид

V.2 за помощь МБойнса. Исправлен двойной массив, потому что wpdb уже выводит массив. Но он по-прежнему не работает в foreach для вывода идентификатора $site_blog_id, и изменение на "$site_blog_ids[0] КАК $site_blog_id" выводит только первый в массиве, а затем останавливается.

global $wpdb; 
$site_blog_ids = $wpdb->get_results($wpdb->prepare("SELECT blog_id FROM wp_blogs where     blog_id > 1")); // get all subsite blog ids

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) "

foreach( $site_blog_ids AS $site_blog_id ) { //iterate through the ids
print_r( "siteid= ".$site_blog_id."</br>" ); // checkem - this shows no blog ids output at all ??

V.3 Рабочая версия для потомков глобальный $wpdb; $site_blog_ids = $wpdb->получить результаты ($wpdb->подготовить("ВЫБРАТЬ идентификатор блога ИЗ wp_blogs, где blog_id > 1"));//получить все идентификаторы блога дочернего сайта

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) "

foreach( $site_blog_ids AS $site_blog_id ) { //iterate through the ids
print_r( "siteid= ".$site_blog_id->blog_id."</br>" ); // checkem - anything in the loop that needs the blog ID value must pull it with the ->blog_id key. 
Author: Dains, 2012-02-15

1 answers

Вы устанавливаете $site_blog_ids как массив массивов. В таком случае, вы бы хотели сделать foreach ($site_blog_ids[0] as...

 2
Author: Matthew Boynes, 2012-02-15 03:55:49