2016-08-09 66 views
1
<?php 

$data = 'a:4:{s:4:"Name";s:8:"John Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-1234";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:8:"Jane Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-5678";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:15:"Jonny Appleseed";s:7:"Address";a:4:{s:6:"Street";s:15:"1 Infinite Loop";s:4:"City";s:10:"Coopertino";s:5:"State";s:2:"CA";s:3:"Zip";s:5:"90201";}s:5:"Phone";s:12:"555-555-9101";s:5:"Email";s:15:"[email protected]";} 
a:4:{s:4:"Name";s:12:"Jack Sparrow";s:7:"Address";a:4:{s:6:"Street";s:15:"The Black Pearl";s:4:"City";s:17:"Cut Throat Island";s:5:"State";s:7:"Tortuga";s:3:"Zip";s:5:"00001";}s:5:"Phone";s:12:"555-555-1213";s:5:"Email";s:14:"[email protected]";} 
a:4:{s:4:"Name";s:14:"Luke Skywalker";s:7:"Address";a:4:{s:6:"Street";s:15:"17 Jedi Council";s:4:"City";s:8:"Corasant";s:5:"State";s:2:"XX";s:3:"Zip";s:5:"99999";}s:5:"Phone";s:12:"555-555-1415";s:5:"Email";s:17:"[email protected]";}'; 



$fexplode = explode(PHP_EOL, $data); 

foreach ($fexplode as $uline) { 
    ?> 
<table cellpadding="2" cellspacing="2" align="left"> 
<table> 
<?php 
    foreach (unserialize($uline) as $item => $value){ 
?> 
    <tr> 
    <td><b><?php echo $item . ": ";?></b></td> 
    <td><?php if ($item == 'Address'){ 
        print "Need to print address array here"; 
       } 
       else { 
      echo $value; 
     } 
     ?> </td> 
    </tr> 
    <br> 
<?php } ?> 
</table> 
<?php } ?> 

Dieser druckt die Arrays in einer Tabelle, aber wenn es in der Anordnung mit einem Array an den Adreßteil wird es ausspuckt „Array zu bespannen Konvertierung "Wenn ich den 'Print' ersetze, muss hier das Adressfeld mit 'echo $ value;'benötigen eine Anordnung innerhalb eines Arrays deserialisieren und zu einer Tabelle in php druckt

+0

So überprüfen Sie, ob '$ value' Array ist. –

Antwort

1

In Ihrem Fall echo $value; Wenn $ value ein Array ist, wird es den Hinweis "Array to string conversion" anzeigen.

Verwenden Sie foreach, um das Array zu echozieren.

if(is_array($value)): 
    foreach($value as $value_in): 
     echo $value_in; 
    endforeach; 
endif; 
+0

Nachdem ich eine Stunde lang gegoogelt habe, möchte ich weinen, um herauszufinden, dass mein Problem eine so einfache Lösung hat. Schätze die Hilfe! – Baker2795

+0

@ Baker2795 Wenn diese Antwort für Sie funktioniert, akzeptieren Sie dies bitte als Antwort. – Reoxey

+0

weil ich nicht wusste, dass ich könnte. Hab ich gerade nochmal Danke gesagt – Baker2795

0

Überprüfen Sie das Element mit Adresswert, dann implodieren Sie es.

<td><b><?php echo ($item == 'Address') ? '' : $value." " ;?></b></td> 
    <td><?php if ($item == 'Address'){ 
        print implode("<br />",$value); 
       } 
       else { 
      echo $value; 
     } 
     ?> </td> 
0
<?php 

$data = 'a:4:{s:4:"Name";s:8:"John Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-1234";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:8:"Jane Doe";s:7:"Address";a:4:{s:6:"Street";s:11:"123 Main St";s:4:"City";s:5:"Dover";s:5:"State";s:2:"DE";s:3:"Zip";s:5:"19904";}s:5:"Phone";s:12:"555-555-5678";s:5:"Email";s:16:"[email protected]";} 
a:4:{s:4:"Name";s:15:"Jonny Appleseed";s:7:"Address";a:4:{s:6:"Street";s:15:"1 Infinite Loop";s:4:"City";s:10:"Coopertino";s:5:"State";s:2:"CA";s:3:"Zip";s:5:"90201";}s:5:"Phone";s:12:"555-555-9101";s:5:"Email";s:15:"[email protected]";} 
a:4:{s:4:"Name";s:12:"Jack Sparrow";s:7:"Address";a:4:{s:6:"Street";s:15:"The Black Pearl";s:4:"City";s:17:"Cut Throat Island";s:5:"State";s:7:"Tortuga";s:3:"Zip";s:5:"00001";}s:5:"Phone";s:12:"555-555-1213";s:5:"Email";s:14:"[email protected]";} 
a:4:{s:4:"Name";s:14:"Luke Skywalker";s:7:"Address";a:4:{s:6:"Street";s:15:"17 Jedi Council";s:4:"City";s:8:"Corasant";s:5:"State";s:2:"XX";s:3:"Zip";s:5:"99999";}s:5:"Phone";s:12:"555-555-1415";s:5:"Email";s:17:"[email protected]";}'; 



$fexplode = explode(PHP_EOL, $data); 

foreach ($fexplode as $uline) { 
    ?> 
<table cellpadding="2" cellspacing="2" align="left"> 
<table> 
<?php 
    foreach (unserialize($uline) as $item => $value){ 
?> 
    <tr> 
    <td><b><?php echo $item . ": ";?></b></td> 
    <td><?php if ($item == 'Address'){ 


     foreach ($value as $current_address_data) { 
      echo $current_address_data ; 

     } 

       } 
       else { 
      echo $value; 
     } 
     ?> </td> 
    </tr> 
    <br> 
<?php } ?> 
</table> 
<?php } ?>