Sipariş Boyutlu Diziler PHP

2 Cevap php

Bunun bir alan tarafından bir dizi sipariş etmek biraz problem var, burada ben örnek bırakın

foreach($xml as $site){
echo '<div><a href="'.$site->loc.'">'.$site->loc.'</a>' .$site->padre.'</div>';
}

Some times the filed $site->padre is empty but i'd like to order by $site->padre alphabetical i saw example with usort but i don't understand how to work it.

Şimdiden teşekkürler.

Şerefe

2 Cevap

<?php

   function alphabetize($a, $b){
     # property notation as used in original question
     return strcmp($a->padre, $b->padre);
   }

   $xml = uasort($xml, 'alphabetize');
   foreach($xml as $site){
     # your code here
   }

?>

Alternatif olarak, PHP'nin create_function() kullanarak bir lambda fonksiyonu kullanabilirsiniz

$xml = uasort($xml, create_function('$a,$b', 'return strcmp($a->padre, $b->padre);'));

Veya, PHP> = 5.3 varsa

$xml = uasort($xml, function($a,$b){ return strcmp($a->padre, $b->padre); });
function cmp($a, $b){
    return strcmp($a['padre'], $b['padre']);
}

usort($xml, "cmp");
foreach($xml as $site){
    echo '<div><a href="'.$site->loc.'">'.$site->loc.'</a>' .$site->padre.'</div>';
}

Cmp işlevi dizideki her eleman için çağrılır. $ A daha fazla ise işlevi belirlemek için bir tamsayı dönmek gerekir, daha az ya da $ b eşit. Cmp işlevi ['peder'] belirterek bu öğe karşılaştırmak olacaktır.