Прежде всего, потому что результатом someString.join()
является строка.
последовательность (список или кортеж или безотносительно) не появляется в результате, просто строка. Поскольку результатом является строка, он имеет смысл как метод строки.
$array = array("Jonathan","Sampson");
foreach($array as $value) {
print $value;
}
или
$length = count($array);
for ($i = 0; $i < $length; $i++) {
print $array[$i];
}
Используйте цикл foreach, он проходит по всем парам ключ => значение:
foreach($array as $key=>$value){
print "$key holds $value\n";
}
Или, чтобы полностью ответить на ваш вопрос:
foreach($array as $value){
print $value."\n";
}
foreach($array as $key => $value) echo $key, ' => ', $value;
Я также обнаружил, что использование тегов
вокруг ваших var_dump или print_r приводит к гораздо более читаемому дампу.
либо foreach:
foreach($array as $key => $value) {
// do something with $key and $value
}
, либо с for:
for($i = 0, $l = count($array); $i < $l; ++$i) {
// do something with $array[$i]
}
, очевидно, вы можете получить доступ к ключам только при использовании цикла foreach.
если вы хотите распечатать массив (ключи и) значения только для отладки используйте var_dump
или print_r
Foreach перед foreach: :)
reset($array);
while(list($key,$value) = each($array))
{
// we used this back in php3 :)
}
Кроме того, если вы выполняете отладку, как упоминал Том, вы можете использовать var_dump , чтобы увидеть массив.
Если вы что-то отлаживаете и просто хотите посмотреть, что там для вашего , функция print_f прекрасно форматирует вывод.