PHP bir dizi yankı veya yazdırmak için?


200

Bu diziye sahibim

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

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

Sorum şu: Bu yapı olmadan içeriği nasıl tekrarlayabilirim? denedim

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

Yanıtlar:


125

Bu yapacak

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

Bunun için teşekkür ederim. Bana nasıl sadece Array [1] türünü nasıl yansıtabileceğimi söyleyebilir misiniz?
EnexoOnoma

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

Ya benim gibi bir anahtarım yoksa data?
Pratik Butani

468

To dizinin içeriğini görmek kullanabilirsiniz.

1) print_r($array); veya güzel biçimlendirilmiş dizi istiyorsanız:

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

2)var_dump($array) veri türü ve uzunluğu gibi dizideki içerik hakkında daha fazla bilgi almak için kullanın .

3) php kullanarak dizi döngü foreach();ve istediğiniz çıktı alabilirsiniz. php'nin dokümantasyon web sitesinde foreach hakkında daha fazla bilgi:
http://in3.php.net/manual/en/control-structures.foreach.php


2
Güzel ve zarif. # 1'deki kapanış etiketini <pre /> yerine </pre> olarak değiştirmek isteyebilirsiniz.
Michael

1
Bu cevap OP'nin yaptığı hatayı ele almıyor.
Shiplu Mokaddim

2
<pre> </pre> yapısının bu ekranı nasıl "güzel" yaptığını açıklayabilir misiniz?
Robin Andrews

1
@Robin <pre> etiketi print_r () tarafından çıktı olarak yeni satırlar ve tablolar görüntüler; <pre> olmadan dağınık, biçimlendirilmemiş veri sınırları görürsünüz. Biçimlendirildiğini görmek için html sayfa kaynağını görüntülemeniz gerekir.
jc

98

İçeriği sadece biçimsiz (örneğin hata ayıklama amacıyla) bilmek istiyorsanız, bunu kullanıyorum:

echo json_encode($anArray);

Bu onu oldukça insan tarafından okunabilen bir JSON olarak gösterecektir.


Bunu başaramadım , html - phpCordova InAppBrowser executeScriptyöntemini kullanarak bir belgeden bazı veriler çıkarmak istedim json_encode($array)! @Mark E
Hamid Araghi

31

Dizi içeriğinin yazdırılması için her birinin özelliklerine sahip birden çok işlev vardır.

print_r()

Bir değişken hakkında insan tarafından okunabilen bilgileri yazdırır.

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


var_dump()

İfadeler hakkında türünü ve değerini içeren yapılandırılmış bilgileri görüntüler.

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


var_export()

Temsili döndürülen belirli bir değişken hakkında yapılandırılmış bilgileri görüntüler geçerli PHP kodu.

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

Tarayıcı, birden fazla boşluk karakterini (satırsonu dahil) tek bir alana ( yanıt ) yoğunlaştırdığından , <pre></pre>sonucu doğru biçimde görüntülemek için yukarıdaki işlevleri sarmanız gerektiğini unutmayın .


Ayrıca dizi koşullarını belirli koşullarla yazdırmanın başka bir yolu vardır.

echo

Bir veya daha fazla dize çıktılayın. Bu nedenle, dizi içeriğini kullanarak yazdırmak istiyorsanız echo, echodizi öğelerini yazdırmak için dizi ve döngü kullanımında döngü yapmanız gerekir .

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

25

Sen kullanabilirsiniz print_r, var_dumpve var_exportphp funcations:

print_r: İnsan tarafından okunabilir forma dönüştürün

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

var_dump(): İçinde ne olduğunu ve ne tür olduğunu gösterecektir.

var_dump($results);

foreach loop: her döngü için kullanarak bir dizinin her bir değerini yineleyebilirsiniz.

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


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

veya echo $results['data'][1]['type'];


Bunun için teşekkür ederim. Bana nasıl sadece Array [1] türünü nasıl yansıtabileceğimi söyleyebilir misiniz?
EnexoOnoma

Array [1] ile ne demek istiyorsun? : o
Andreas Wong

@andreas Ben sadece TOPLULUK veya 163703342377960 yankı istiyorum. Dizinin tüm içeriği değil, özellikle
EnexoOnoma

Deneecho $results['data'][1]['page_id'];
Andreas Wong

8

Verileri diziye görmek için döngü koymanıza gerek yoktur, sadece aşağıdaki şekilde yapabilirsiniz

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

3

Bu eski bir soru olduğunu biliyorum ama bir parseable PHP temsil istiyorsanız kullanabilirsiniz:

$parseablePhpCode = var_export($yourVariable,true);

Dışa aktarılan kodu bir file.php dosyasına (return deyimiyle) yankılarsanız,

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

0

Cevabı kontrol ettim, ancak PHP'de (her biri için) kullanımdan kaldırıldı ve artık en son php sürümleriyle çalışmaz.

Genellikle bir diziyi bir yere, belki hata ayıklama veya test vb.

Diziyi yaparak dizeye dönüştürürdüm:

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

Buna karşılık:

$ output sonuçtur (dizenin oluşturulacağı yer)

",": ayırıcıdır (her dizi alanı arasında)

$ SourceArray: kaynak dizinizdir.

Umarım bu yardımcı olur


-2

İlişkilendirilebilir bir dizinin tüm değerlerini gözden geçirin ve yazdırın, şöyle bir foreachdöngü kullanabilirsiniz :

foreach($results as $x => $value) {
    echo $value;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.