2013-08-12 45 views
-1
$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); 

?> 
+0

不喜歡肝臟?這很美味! –

+0

你有什麼嘗試?你有沒有看過[可用數組排序函數](http://php.net/manual/en/array.sorting.php),並試過其中的任何一個? – naththedeveloper

+0

您是否嘗試閱讀array_reverse的手冊頁? –

回答

1

rsort看看:

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

它說它會按字母順序排序?從低到高我可以理解數字索引排序嗎? – RIK

+0

文檔中的示例按照反向字母順序排序,這是此功能的常見用例。來自doc:「果實已按照字母順序排序。」 –

0

首先,排序數組:

sort($input) 

這應做到:

$reversed = array_reverse($input); 

,並刪除了一些:

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

與我的解決方案相同。你正在使用和我用foreach。 – RIK

+0

你幾分鐘前更新了你的答案。在我寫這個之前。 – M1K1O

+0

很酷,謝謝!!! – RIK

相關問題