2015-12-17 65 views
0

我有一個列表陣列如何重新排列數組中的元素時,許多值是空的?

array([img1] => "", [img2] => "AJKH.png", [img3] => "", [img4] => "") 
array([img1] => "", [img2] => "AJKH.png", [img3] => "IHGF.png", [img4] => "") 

如何當數組一些值是空的重新排序。如何創意?

array([img1] => "AJKH.png", [img2] => "", [img3] => "", [img4] => "") 
array([img1] => "AJKH.png", [img2] => "IHGF.png", [img3] => "", [img4] => "") 
+0

您可以嘗試排序陣列。另外,如果它很好,你可以循環數組並且取消空的空格。 –

+9

看看http://stackoverflow.com/questions/9395395/php-how-to-move-the-empty-values-of-an-array-to-its-last-positions – Matt

+0

感謝@馬特.. 。 –

回答

0

一個簡單的方法是有2個數組併合並它們(它會更好,而不是換算計算)。

$empty=array(); 
$full=array(); 

foreach($yourArray as $value){ 
if($value==""){ 
    $empty[]=$value; 
} 
else{ 
    $full[]=$value; 
} 
} 

$result = array_merge($full, $empty); 

另一種方法是編寫一個算法來檢查元素的位置(空)並交換它們。結束所有的空白。

1

提出的重複幾乎是相同的,但因爲它看起來像你想保持你的鑰匙以相同的順序(不保持鍵值協會),只是根據是否走動值這一次似乎有點不同或者不是空的。這應該這樣做:

$new_array = array_fill_keys(array_keys($array), ''); 
foreach ($array as $value) { 
    if ($value) { 
     $new_array[key($new_array)] = $value; 
     next($new_array); 
    } 
} 
相關問題