읽을 수있는 / 계층 적 형식으로 배열 표시
다음은 내 배열의 데이터를 가져 오는 코드입니다.
<?php
$link = mysqli_connect('localhost', 'root', '', 'mutli_page_form');
$query = "SELECT * FROM wills_children WHERE will=73";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
if($row = mysqli_fetch_assoc($result)) {
$data = unserialize($row['children']);
}
/* free result set */
mysqli_free_result($result);
}
?>
print_r ($ data) 사용하면 다음과 같이 읽습니다.
Array ( [0] => Array ( [0] => Natural Chlid 1 [1] => Natural Chlid 2 [2] => Natural Chlid 3 ) )
다음과 같이 읽고 싶습니다.
자연 아이 1
자연 아이 2
자연 아이 3
이 시도:
foreach($data[0] as $child) {
echo $child . "\n";
}
대신에 print_r($data)
대신에
print_r($data);
시험
print "<pre>";
print_r($data);
print "</pre>";
print("<pre>".print_r($data,true)."</pre>");
기본 기능이 있습니다.
function prettyPrint($a) {
echo "<pre>";
print_r($a);
echo "</pre>";
}
prettyPrint($data);
편집 : 최적화 된 기능
function prettyPrint($a) {
echo '<pre>'.print_r($a,1).'</pre>';
}
편집 : 사용자 정의 태그 지원으로 Moar 최적화 기능
function prettyPrint($a, $t='pre') {echo "<$t>".print_r($a,1)."</$t>";}
나는 var_export()
잊혀진 형제 var_dump()
가 최고의 출력 을 가지고 있다고 생각합니다 .
echo "<pre>";
var_export($menue);
echo "</pre>";
그건 그렇고 :을 사용할 필요는 없습니다 <pre>
. var_dump()
그리고 var_export()
당신은 당신의 웹 페이지의 소스 코드를 살펴 때 이미 포맷되어 있습니다.
누군가가 배열을 너무 멋지게 볼 필요가 있다면;)이 방법을 사용하십시오. 이것은 브라우저 콘솔에 인쇄됩니다
function console($obj)
{
$js = json_encode($obj);
print_r('<script>console.log('.$js.')</script>');
}
이렇게 사용할 수 있습니다 ..
console($myObject);
출력은 이렇게 될거에요 .. 너무 멋지네요 !!
print_r()
대부분 디버깅 용입니다. 해당 형식으로 인쇄하려면 배열을 반복하고 요소를 인쇄하십시오.
foreach($data as $d){
foreach($d as $v){
echo $v."\n";
}
}
이것은 더 간단한 해결책 일 수 있습니다.
echo implode('<br>', $data[0]);
foreach($array as $v) echo $v, PHP_EOL;
업데이트 : 더 정교한 솔루션은 다음과 같습니다.
$test = [
'key1' => 'val1',
'key2' => 'val2',
'key3' => [
'subkey1' => 'subval1',
'subkey2' => 'subval2',
'subkey3' => [
'subsubkey1' => 'subsubval1',
'subsubkey2' => 'subsubval2',
],
],
];
function printArray($arr, $pad = 0, $padStr = "\t") {
$outerPad = $pad;
$innerPad = $pad + 1;
$out = '[' . PHP_EOL;
foreach ($arr as $k => $v) {
if (is_array($v)) {
$out .= str_repeat($padStr, $innerPad) . $k . ' => ' . printArray($v, $innerPad) . PHP_EOL;
} else {
$out .= str_repeat($padStr, $innerPad) . $k . ' => ' . $v;
$out .= PHP_EOL;
}
}
$out .= str_repeat($padStr, $outerPad) . ']';
return $out;
}
echo printArray($test);
다음과 같이 출력됩니다.
[
key1 => val1
key2 => val2
key3 => [
subkey1 => subval1
subkey2 => subval2
subkey3 => [
subsubkey1 => subsubval1
subsubkey2 => subsubval2
]
]
]
디버깅을 위해 print_r을 사용한다고 가정합니다. 그런 다음 Kint 와 같은 라이브러리를 사용하는 것이 좋습니다 . 이렇게하면 큰 배열을 읽을 수있는 형식으로 표시 할 수 있습니다.
$data = [['Natural Child 1', 'Natural Child 2', 'Natural Child 3']];
Kint::dump($data, $_SERVER);
<?php
//Make an array readable as string
function array_read($array, $seperator = ', ', $ending = ' and '){
$opt = count($array);
return $opt > 1 ? implode($seperator,array_slice($array,0,$opt-1)).$ending.end($array) : $array[0];
}
?>
나는 이것을 사용하여 방문자에게 예쁜 인쇄 배열을 보여줍니다.
var_dump 함수를 사용하여 형식화 된 배열을 PHP로 인쇄하는 아주 좋은 방법입니다.
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
나는 키와 그 값을 얻기 위해 이것을 사용한다. $ qw = mysqli_query ($ connection, $ query);
while ( $ou = mysqli_fetch_array($qw) )
{
foreach ($ou as $key => $value)
{
echo $key." - ".$value."";
}
echo "<br/>";
}
온라인 도구 만 사용합니다.
먼저 print_r (your_array)
두 번째 결과를 복사하고 http://phillihp.com/toolz/php-array-beautifier/에 붙여 넣습니다 .
빠르고 쉬운 JSON 표현을위한 한 줄짜리 :
echo json_encode($data, JSON_PRETTY_PRINT);
이미 프로젝트에 composer를 사용하고 있다면 symfony / yaml이 필요하고 다음이 필요합니다.
echo Yaml::dump($data);
echo '<pre>';
foreach($data as $entry){
foreach($entry as $entry2){
echo $entry2.'<br />';
}
}
단일 배열의 경우 implode를 사용할 수 있으며 인쇄 할 결과가 더 깨끗합니다.
<?php
$msg = array('msg1','msg2','msg3');
echo implode('<br />',$msg);
echo '<br />----------------------<br/>';
echo nl2br(implode("\n",$msg));
echo '<br />----------------------<br/>';
?>
다차원 배열의 경우 일종의 루프와 결합해야합니다.
<?php
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
foreach($msgs as $msg) {
echo implode('<br />',$msg);
echo '<br />----------------------<br/>';
}
?>
이것은 print_r()
콘솔 응용 프로그램에서 출력 형식 을 향상 시키려고 합니다.
function pretty_printr($array) {
$string = print_r($array, TRUE);
foreach (preg_split("/((\r?\n)|(\r\n?))/", $string) as $line) {
$trimmed_line = trim($line);
// Skip useless lines.
if (!$trimmed_line || $trimmed_line === '(' || $trimmed_line === ')' || $trimmed_line === 'Array') {
continue;
}
// Improve lines ending with empty values.
if (substr_compare($trimmed_line, '=>', -2) === 0) {
$line .= "''";
}
print $line . PHP_EOL;
}
}
예:
[activity_score] => 0
[allow_organisation_contact] => 1
[cover_media] => Array
[image] => Array
[url] => ''
[video] => Array
[url] => ''
[oembed_html] => ''
[thumb] => Array
[url] => ''
[created_at] => 2019-06-25T09:50:22+02:00
[description] => example description
[state] => published
[fundraiser_type] => anniversary
[end_date] => 2019-09-25
[event] => Array
[goal] => Array
[cents] => 40000
[currency] => EUR
[id] => 37798
[your_reference] => ''
참고 URL : https://stackoverflow.com/questions/5393085/display-an-array-in-a-Readable-hierarchical-format
'IT story' 카테고리의 다른 글
UIButton의 이미지를 AspectFit으로 조정 하시겠습니까? (0) | 2020.09.12 |
---|---|
코드 골프 : Collatz 추측 (0) | 2020.09.12 |
스레드 또는 타이머에서 HttpServerUtility.MapPath 메서드에 액세스하는 방법은 무엇입니까? (0) | 2020.09.11 |
CMD 셸의 여유 공간 (0) | 2020.09.11 |
문자열에서 '-'문자를 제거하는 jQuery (0) | 2020.09.11 |