Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

print_r

(PHP 4, PHP 5)

print_r - печатает читабельную информацию о переменной.

Описание

void print_r (mixed expression)

print_r() выводит пригодную для чтения человеком информацию о переменной. Если задано string, integer или float, печатается само значение. Если задан array, значения будут представлены в формате с показом ключей и элементов. Аналогичная нотация используется для object.

Помните, что print_r() перемещает указатель массива в конец. Используйте reset() для возврата его в начало.

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

<?php
 $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
 print_r ($a);
?>

выдаст на выводе:

Array
(
 [a] => apple
 [b] => banana
 [c] => Array
 (
 [0] => x
 [1] => y
 [2] => z
 )
)

Примечание: до PHP 4.0.4 print_r() продолжает выводит бесконечно, если задан array или object, содержащий прямую или косвенную ссылку на себя самого. Примером может служить print_r($GLOBALS), поскольку $GLOBALS сама является глобальной переменной, содержащей ссылку на саму себя.

Эмулятор функции print_r

Этот пример эмуляции функции print_r позволяет не только вывести содержимое массива включая вложенные массивы, но и сформировать строку.

function arr2str($array) {
$str = "array(\n";
foreach ($array as $key => $value) {
        if (is_array($value)) {
                $str .= "'$key' => " . arr2str($value) . ",\n\n";
        }
        else {
                $str .= "'$key' => '" . str_replace("'", "\'", $value) . "',\n";
        }
}
return $str . ")";
}

Усложненный вариант функции print_r

При выводе делаются отступы и производится преобразование utf-8 в win1251

function arr2str($arr,$level=0){
    $str = "array(<br>\n";
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
                $str.=str_repeat("    ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => " . arr2str($val,$level+1) . ",<br>\n";
        }else {
                $str.=str_repeat("    ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => '<b>" . str_replace("'", "\'", iconv( 'utf-8', 'windows-1251',$val)) . "</b>',<br>\n";
        }
}
return $str . str_repeat("    ",$level).")";
}


//Пример вызова:
echo arr2str($arr);

Смотрите также ob_start(), var_dump() и var_export().

Все функции строки
Все функции array
Описание на ru2.php.net
Описание на php.ru