函数以反向字母顺序返回值

时间:2013-08-12 11:24:52

标签: php

$foods = array(
 'meat' => array('burgers', 'steak', 'sausages', 'liver'),
 'cake' => array('victorian', 'chocolate', 'fruit', 'fudge')
 );

我只想按反向字母顺序排列肉类值,函数应该返回一个数组。

我不希望肝脏被包括在阵列中。

我该怎么做?

我已经这样做了但由于某些原因我不喜欢它。对我来说看起来很简单。任何人都可以建议我这样做的更好方法。 这就是我做到的。

    function items($arr){

$x = $arr['meat'];
sort($x);
$z = array_reverse($x);
foreach ($z as $v){
 if($v == 'liver')continue;
   $r[] = $v ;   
}
return $r;

}

$foods = array(
'meat' => array('burgers', 'steak', 'sausages', 'liver'),
'cake' => array('viian', 'chocolate', 'fruit', 'fudge')
);

$x = items($foods);
var_dump($x);

?>

2 个答案:

答案 0 :(得分:1)

看看rsort

$meats = $foods['meat'];
rsort($meats);
if ($key = array_search('liver', $meats)) 
     unset($meats[$key]);

答案 1 :(得分:0)

首先,排序数组:

sort($input)

这应该这样做:

$reversed = array_reverse($input);

删除一些:

for($i=0;$i<count($reversed);$i++) {
    if($reversed[$i] == "liver")
       unset($reversed[$i]);        
}