PHP에서 배열을 반향 또는 인쇄하는 방법은 무엇입니까?


198

이 배열이 있습니다

Array
(
  [data] => Array
    (
      [0] => Array
        (
          [page_id] => 204725966262837
          [type] => WEBSITE
        )

      [1] => Array
        (
          [page_id] => 163703342377960
          [type] => COMMUNITY
        )
      )
)

내 질문은 어떻게이 구조없이 콘텐츠를 에코 할 수 있습니까? 나는 시도했다

foreach ($results as $result) {
    echo $result->type; 
    echo "<br>";
} 

답변:


125

이것은 할 것이다

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}

감사합니다. 예를 들어 Array [1] 유형 만 에코하는 방법을 알려줄 수 있습니까?
EnexoOnoma 5

7
@Kaoukkosecho $results['data'][1]['type'];
Shiplu Mokaddim

키가 없으면 어떻게해야 data합니까?
Pratik Butani

467

배열의 내용보려면 사용할 수 있습니다.

1) print_r($array); 또는 멋지게 포맷 된 배열을 원한다면 :

echo '<pre>'; print_r($array); echo '</pre>';

2)var_dump($array) 데이터 유형 및 길이와 같은 배열의 내용에 대한 자세한 정보를 얻는 데 사용 하십시오.

3) PHP를 사용하여 배열을 반복 할 수 있습니다foreach(); 하고 원하는 출력을 얻을 수 있습니다. PHP 문서 웹 사이트에서 foreach에 대한 자세한 정보 :
http://in3.php.net/manual/en/control-structures.foreach.php


2
멋지고 우아합니다. # 1의 닫는 태그를 <pre />에서 </ pre>로 변경할 수 있습니다.
Michael

1
이 답변은 OP가 저지른 실수를 다루지 않습니다.
Shiplu Mokaddim

2
<pre> </ pre> 구문이 어떻게이 디스플레이를 "멋지게"만드는지 설명 할 수 있습니까?
Robin Andrews

1
@Robin <pre> 태그는 print_r ()에 의해 출력되는 줄 바꿈과 표를 표시합니다. <pre>가 없으면 지저분한 형식화되지 않은 데이터 범위가 표시됩니다. 형식을 확인하려면 html 페이지 소스를 확인하십시오.
jc

96

형식이없는 내용 (예 : 디버깅 목적)을 알고 싶다면 다음을 사용하십시오.

echo json_encode($anArray);

이것은 사람이 읽을 수있는 JSON으로 표시됩니다.


나는 그것을 달성 할 수없는 html - phpCordova InAppBrowser executeScript방법을 사용하여 문서 에서 일부 데이터를 추출하고 싶었습니다 json_encode($array)! 감사합니다
@Mark

31

각각 기능이있는 배열 내용을 인쇄하는 기능은 여러 가지가 있습니다.

print_r()

변수에 대한 사람이 읽을 수있는 정보를 인쇄합니다.

$arr = ["a", "b", "c"];
echo "<pre>";
print_r($arr);
echo "</pre>";
Array
(
    [0] => a
    [1] => b
    [2] => c
)


var_dump()

유형과 값을 포함하는 표현식에 대한 구조화 된 정보를 표시합니다.

echo "<pre>";
var_dump($arr);
echo "</pre>";
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


var_export()

표시된 표현이 유효한 PHP 코드 인 주어진 변수에 대한 구조화 된 정보를 표시합니다.

echo "<pre>";
var_export($arr);
echo "</pre>";
array (
  0 => 'a',
  1 => 'b',
  2 => 'c',
)

브라우저는 여러 공백 문자 (개행 문자 포함)를 단일 공백 ​​( answer )으로 압축하므로 위의 함수를 랩핑 <pre></pre>하여 올바른 형식으로 결과를 표시해야합니다.


또한 특정 조건에서 배열 내용을 인쇄하는 다른 방법이 있습니다.

echo

하나 이상의 문자열을 출력합니다. 따라서를 사용하여 배열 내용을 인쇄하려면 배열 echo을 반복하고 echo배열 항목을 인쇄 할 때 루프를 사용해야 합니다.

foreach ($arr as $key=>$item){
    echo "$key => $item <br>";
}
0 => a 
1 => b 
2 => c 

24

PHP의 print_r, var_dumpvar_exportfuncations를 사용할 수 있습니다 .

print_r: 사람이 읽을 수있는 형태로 변환

<?php
echo "<pre>";
 print_r($results); 
echo "</pre>";
?>

var_dump(): 물건의 종류와 내용을 보여줍니다.

var_dump($results);

foreach loop: 각 루프마다 배열의 모든 값을 반복 할 수 있습니다.

foreach($results['data'] as $result) {
    echo $result['type'].'<br>';
}


17
foreach($results['data'] as $result) {
    echo $result['type'], '<br />';
}

또는 echo $results['data'][1]['type'];


감사합니다. 예를 들어 Array [1] 유형 만 에코하는 방법을 알려줄 수 있습니까?
EnexoOnoma 5

배열 [1]의 의미는 무엇입니까? : o
Andreas Wong

@andreas COMMUNITY 또는 163703342377960 만 에코하고 싶습니다. 어레이의 전체 내용이 아니라 구체적으로
EnexoOnoma

시도echo $results['data'][1]['page_id'];
Andreas Wong 5

8

배열에 데이터를 표시하기 위해 for 루프를 넣을 필요가 없습니다. 간단히 다음과 같은 방식으로 수행 할 수 있습니다

<?php
echo "<pre>";
 print_r($results); 
echo "</pre>";
?>

3

나는 이것이 오래된 질문이라는 것을 알고 있지만 구문 분석 가능한 PHP 표현을 원한다면 다음을 사용할 수 있습니다.

$parseablePhpCode = var_export($yourVariable,true);

내 보낸 코드를 file.php (반환 문 포함)에 에코하면 다음과 같이 필요할 수 있습니다.

$yourVariable = require('file.php');

0

그러나 PHP의 답변 (각각)이 더 이상 사용되지 않으며 더 이상 최신 PHP 버전에서 작동하지 않습니다.

일반적으로 배열을 문자열로 변환하여 디버깅 또는 테스트 등의 어딘가에 기록합니다.

다음을 수행하여 배열을 문자열로 변환합니다.

$Output = implode(",", $SourceArray);

이므로:

$ output은 결과입니다 (문자열이 생성되는 위치)

",": 구분 기호입니다 (각 배열 필드 사이)

$ SourceArray :는 소스 배열입니다.

이게 도움이 되길 바란다


-2

반복 배열의 모든 값을 반복하여 인쇄 foreach하면 다음과 같이 루프를 사용할 수 있습니다 .

foreach($results as $x => $value) {
    echo $value;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.