PHP数组只打印每个项目的第一个字母

时间:2011-05-18 19:56:41

标签: arrays loops printing

以下代码仅打印每个数组项的第一个字母。这让我很困惑。

require_once 'includes/global.inc.php';
print_r($site->bookmarkTags(1));

$index = 0;
foreach ($site->bookmarkTags(1) as $tag) {
    echo $tag['$index'];
    $index = $index + 1;
}

print_r return:

Array ( [0] => Wallpapers [1] => Free )

循环:

WF

3 个答案:

答案 0 :(得分:3)

尝试echo $ tag,而不是$ tag ['$ index']

由于您使用的是foreach,因此该值已从数组中获取,当您发布$ tag ['$ index']时,它将从'$ index'位置打印该字符:)

答案 1 :(得分:1)

看来你已经尝试做了一些foreach已经在做的事情...... 问题是你实际上是在回应一个非数组的$ index字母,因为foreach已经做了你似乎期望你的$ index = $ index + 1做的事情:

require_once 'includes/global.inc.php';
print_r($site->bookmarkTags(1));

$index = 0;
foreach ($site->bookmarkTags(1) as $tag) {
    echo $tag; // REMOVE [$index] from $tag, because $tag isn't an array
    $index = $index + 1; // You can remove this line, because it serves no purpose
}

答案 2 :(得分:0)

require_once 'includes/global.inc.php';

// Store the value temporarily instead of
// making a function call each time
$tags = $site->bookmarkTags(1);
foreach ($tags as $tag) {
    echo $tag;
}

这应该有效。问题可能是因为你在每次迭代时进行函数调用,而不是临时存储值并循环遍历它。