PHP массив печатает только первую букву каждого элемента - PullRequest
0 голосов
/ 18 мая 2011

Приведенный ниже код печатает только первую букву каждого элемента массива.Меня это озадачило.

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 ]

3 голосов
/ 19 мая 2011

Попробуйте echo $ tag, а не $ tag ['$ index']

Поскольку вы используете foreach, значение уже взято из массива, и когда вы публикуете $ tag ['$ index'], он печатает символ из позиции '$ index':)

1 голос
/ 19 мая 2011

Кажется, вы пытались сделать то, что уже делает 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
}
0 голосов
/ 19 мая 2011
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;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...