Bir foreach son girişi bulma () işlemi

4 Cevap php

Basit tek çocuklar.

Bir XML simplexml_load_file kullanılarak ayrıştırıldı () var.

Aşağıdaki kodu:

<?php
    foreach($xml->actors->actor as $actors) {
        echo $actors.", ";
    }
?>

Aşağıdaki sonucu verir:

John Smith, Amy Adams, Charlie Doe,

Onu nasıl verir şekilde kodunu değiştirmek yapın:

John Smith, Amy Adams, Charlie Doe

Bu dizide girdileri herhangi bir sayıda genelinde uygulamak gerekiyor. Teşekkürler!

4 Cevap

implode işlevini kullanın.

echo implode(", ", $xml->actors->actor);

Bir foreachta geçerli dizini alabilirsiniz:

<?php
    foreach($xml->actors->actor as $key => $actors) {
     if ($key == (count($actors)-1) echo "Last entry!";
    }
?>

Bu gibi durumlarda, ancak, ilk girişleri ile geçici bir dizi oluşturmak için tercih ve sonra içeriye patlamak:

echo implode(",", $names);

Ben genellikle basit bir dizi ile bu sorunu çözmek:

<?php
$names = array();
foreach($xml->actors->actor as $actors) {
    $names[] = $actors;
}
echo implode(", ", $names);
?>

Neden sadece söylemek değil Nitekim olarak,

<?php
    echo implode(", ", $xml->actors->actor);
?>

Yukarıda Birçok kişinin öne sürdüğü gibi dizi implode, ya da bir değişkene aktörün isimleri atamak ve her bir yineleme ile bu değişkeni birleştirmek ve daha sonra son virgül kaldırmak için çıkan dizide bir rtrim işlemi gerçekleştirebilirsiniz ya.

Ama basitlik aşkına, bir implode ile gitmek.