循环遍历一个数字列表


php: loop through a list of numbers

我有一个像这样的数组:

Array (
[0] => stdClass Object ( [ID] => 1 [user_id] => 1 [post_id] => 929,924,875,839,850,720,642,1109,917,935,911,1174,1173,1172,903,892,1189,865,1386 ) 
[1] => stdClass Object ( [ID] => 2 [user_id] => 75 [post_id] => 903,704,477,9,455 ) 
[2] => stdClass Object ( [ID] => 3 [user_id] => 78 [post_id] => 917,911 ) 
[3] => stdClass Object ( [ID] => 4 [user_id] => 80 [post_id] => 903,1109,642 )
)

我写了一个foreach循环来遍历每个元素:

$apples = $wpdb->get_results("SELECT ID, user_id, post_id FROM table_name" );
foreach ( $apples as $apple ) 
    {
        $user_info = get_userdata($apple->user_id);
        $post_title = get_the_title($apple->post_id);
        echo '<ul><li>' . $user_info->user_login . '</li>';
        echo '<li>' . $post_title . '</li>';
        echo '</ul>';
    }

我如何循环通过在[post_id]中发现的每个ID ?现在它只显示[post_id]中第一个数字的标题。但我需要它循环遍历每一个。什么好主意吗?

类似于

<?php
...
foreach( explode( ',', $apple->post_id ) as $post_id ) {
// Do your stuff
}

会做

你可以试试

foreach ( $apples as $apple ) {
    $user_info = get_userdata($apple->user_id);
    echo '<h4>' . $user_info->user_login . '<h4>';
    echo "<ul>";
    foreach ( explode(",", $apple->post_id) as $postID ) {
        printf('<li>%s</li>', get_the_title($postID));
    }
    echo '</ul>';
}