PHP中objectAtIndex的等价物

时间:2011-06-19 14:40:38

标签: php mysql arrays

我有一个名为followers的数组,我想知道如何在PHP中获取数组的objectAtIndex $。

我目前的代码是这样,但它不起作用:

    $followers = anArray....
    $returns = array();
    for ($a = 1; $a <= $numberOfFollowers; $a++) {
        $follower = $followers[$a];
        echo $follower;
        $query = mysql_query("query....");
        if (!$query) {}
        while ($row = mysql_fetch_assoc($query)) {

        }
    }

编辑---这就是我得到粉丝的方式:

    $followers = array();
    while ($row = mysql_fetch_array($querys)) {
        $followers[] = $row['followingUserID'];
    }
    $numberOfFollowers = count($followers);

2 个答案:

答案 0 :(得分:1)

为什么不这样做foreach()

$followers = array();
$returns = array();
foreach($followers as $index => $follower){
    echo $follower;
    $query = mysql_query("query....");
    if (!$query) {}
    while ($row = mysql_fetch_assoc($query)) {

    }
}

我不知道你在做什么,但对我来说,这是一个巨大的大炮射向数据库。尝试将您的查询优化为单个查询。永远不要想象数据库会在你的脑海里抓一个循环。

答案 1 :(得分:0)

看起来$followers的每个元素都是mysql_fetch_assoc()返回的值。每个元素都是一个关联数组,当你回显它时,我希望看到它作为字符串'Array'回显,因为这是PHP的通常行为。

需要注意的一点是,当您使用array()创建一个空数组,然后使用$myarray[] = ...形式的赋值填充它时,生成的数组将被零索引。也就是说,数组的键将从0开始,而不是从1开始。因此,您需要使用for ($a = 1; $a <= $numberOfFollowers; $a++) {而不是for ($a = 0; $a < $numberOfFollowers; $a++) {,或者使用@Shef建议的解决方案并使用{{1 }}

您的问题可能会出现,因为foreach只包含一个元素,而且由于出现了一个错误,您没有看到任何输出。通过在脚本开头添加此行来启用错误报告:

$followers

如果我使用您当前的代码,那么您应该看到error_reporting(E_ALL & ~E_STRICT);