Як повторити або надрукувати масив у 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>';
}

Дякую за це. Чи можете ви сказати мені, як я можу повторювати, наприклад, лише тип масиву [1]?
EnexoOnoma

7
@Kaoukkosecho $results['data'][1]['type'];
Шиплу Мокаддім

Що робити, якщо у мене немає такого типу ключів data?
Пратік Бутані

467

Для перегляду вмісту масиву ви можете використовувати.

1) print_r($array); або якщо ви хочете добре відформатований масив, виконайте такі дії:

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

2) використовувати var_dump($array)для отримання додаткової інформації про вміст у масиві, як тип даних та довжина.

3) Ви можете зафіксувати масив за допомогою php foreach();та отримати потрібний вихід. більше інформації про foreach на веб-сайті документації php:
http://in3.php.net/manual/en/control-structures.foreach.php


2
Приємно і елегантно. Ви можете змінити тег закриття в №1 з <pre /> на </pre>.
Майкл

1
Ця відповідь не стосується помилки, яку зробив ОП.
Шиплу Мокаддім

2
Ви можете пояснити, як конструкція <pre> </pre> робить цей дисплей "красивим"?
Робін Ендрюс

1
Тег @Robin <pre> відображає нові рядки та табуляцію, коли вона виписана print_r (); без <pre> ви побачите безладні неформатовані межі даних. Щоб побачити його відформатований, слід переглянути джерело html-сторінки.
jc

96

Якщо ви просто хочете знати вміст без формату (наприклад, для налагодження), я використовую це:

echo json_encode($anArray);

Це покаже це як JSON, який є досить зрозумілим для людини.


Я хотів витягнути деякі дані з html - phpдокумента методом Кордова InAppBrowser executeScript, без цього json_encode($array)я не зміг цього досягти! Велике спасибі @Mark E
Хамід Арагі

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',
)

Зауважте, що оскільки браузер конденсує кілька символів пробілу (включаючи нові рядки) в один пробіл ( відповідь ), вам потрібно перегорнути вище функції, <pre></pre>щоб відобразити результат у правильному форматі.


Також є ще один спосіб друку вмісту масиву з певними умовами.

echo

Виведіть одну або кілька рядків. Отже, якщо ви хочете друкувати вміст масиву за допомогою echo, вам потрібно провести цикл через масив і використовувати цикл echoдля друку елементів масиву.

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

24

Ви можете використовувати print_r, var_dumpі var_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'];


Дякую за це. Чи можете ви сказати мені, як я можу повторювати, наприклад, лише тип масиву [1]?
EnexoOnoma

що ви маєте на увазі під масивом [1]? : o
Андреас Вонг

@andreas Я хочу повторити лише Спільноту або 163703342377960. Не весь вміст масиву, а конкретно
EnexoOnoma,

Спробуйтеecho $results['data'][1]['page_id'];
Андреас Вонг

8

Вам не потрібно ставити цикл для перегляду даних у масив, ви можете просто зробити наступним чином

<?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;
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.