我有一个列表数组
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 :(得分:1)
建议的副本几乎相同,但这个看起来有点不同,因为它看起来像你想要保持你的键在相同的顺序(不保持键值关联),只是根据是否或移动值不是他们是空的。这应该这样做:
$new_array = array_fill_keys(array_keys($array), '');
foreach ($array as $value) {
if ($value) {
$new_array[key($new_array)] = $value;
next($new_array);
}
}
答案 1 :(得分:0)
一种简单的方法是拥有2个数组并合并它们(它会更好,而不是在计算方面进行交换)。
$empty=array();
$full=array();
foreach($yourArray as $value){
if($value==""){
$empty[]=$value;
}
else{
$full[]=$value;
}
}
$result = array_merge($full, $empty);
另一种方法是编写一个算法来检查元素的位置(空)并交换它们。最后把所有的空白。