Php döndürülen değerleri ayırmak için nasıl?

2 Cevap php

Ben 2 arrays.below dönecektir bir php fonksiyonu kullanıyorum benim fonksiyonudur

function imserv($id){

$xml=simplexml_load_file("feed.xml");

$images=$xml->xpath('//IMAGE');
$services=$xml->xpath('//SERVICES');

return array ($images,$services);
}

i hizmetler bloktan sonuçları almak için aşağıdaki kodu kullanabilirsiniz

$services=imgserv('5874');

foreach ($services as $servicerow)
{   
    var_dump($servicerow);

}

Sorun bu hizmetlerden yalnızca değerleri almak için çalıştığınızda, birlikte hem hizmet ve görüntüleri döndürür olmasıdır. Ben bu yüzden nasıl farklı kullanılmak üzere ayırmak yok, iki farklı yerlerde ikisini de kullanmak gerekir?

Aşağıda benim yem,

<?xml version="1.0" ?>
<FOUND>
<NFO>
<IMAGES>
    <IMAGE>
      <SMALL>images/small.jpg</SMALL> 
      <MED>images/med.jpg</MED> 
      <LARGE>images/large.jpg</LARGE> 
      <EXTRAL>images/extra.jpg</EXTRAL> 
    </IMAGE>
    <IMAGE>
      <SMALL>images1/small.jpg</SMALL> 
      <MED>images1/med.jpg </MED> 
      <LARGE>images1/large.jpg</LARGE> 
      <EXTRAL>images1/extra.jpg</EXTRAL> 
    </IMAGE>
    <IMAGE>
      <SMALL>images2/small.jpg</SMALL> 
      <MED>images2/med.jpg </MED> 
      <LARGE>images2/large.jpg</LARGE> 
      <EXTRAL>images2/extra.jpg</EXTRAL> 
      </IMAGE>
   </IMAGES>

<SERVICES>
<GROUP><GROUPNAME>Officials</GROUPNAME><SERVICE>
<TYPE>Handy</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Bedroom</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Meeting Rooms</TYPE>

<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Conferencing</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Offices</TYPE>
<NB>0</NB>
</SERVICE>
</GROUP>
<GROUP><GROUPNAME>Reception</GROUPNAME><SERVICE>

<TYPE>Support</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Reception</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Telephone</TYPE>
<NB>0</NB>
</SERVICE>

</GROUP>
<GROUP><GROUPNAME>Authent</GROUPNAME><SERVICE>
<TYPE>Cams</TYPE>
<NB>0</NB>
</SERVICE>
</GROUP>
<GROUP><GROUPNAME>IT</GROUPNAME><SERVICE>
<TYPE>Internet</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>Telephone System</TYPE>

<NB>0</NB>
</SERVICE>
</GROUP>
<GROUP><GROUPNAME>Amenities</GROUPNAME>
<SERVICE>
<TYPE>24/7</TYPE>
<NB>0</NB>
</SERVICE>
<SERVICE>
<TYPE>AC</TYPE>
<NB>0</NB>
</SERVICE>

</GROUP>
</SERVICES>
</NFO>
</FOUND>

herhangi bir yardım takdir edilecektir.

Teşekkürler

2 Cevap

Böyle bir şey işlevini değiştirmek eğer daha kolay olurdu:

function imserv($id){
$a = array();
$xml=simplexml_load_file("feed.xml");

$a['images']=$xml->xpath('//IMAGE');
$a['services']=$xml->xpath('//SERVICES');

return $a;
}

Sonra sen böyle bir şey yazmak mümkün olacak

$imservarr=imgserv('5874');
foreach ($imservarr['services'] as $servicerow)
{   
var_dump($servicerow);    
}
foreach ($imservarr['images'] as $imagerow)
{   
var_dump($imagerow);    
}

Bu hile yapacak:

list($images, $services) = imgserv('5874');