如何将数组的空值移到最后一个位置?

例如:

$givenArray = array(
                    0=>'green',
                    1=>'',
                    2=>'red',
                    3=>'',
                    4=>'blue'
                  );

$requiredArray = array(
                       0=>'green',
                       1=>'red',
                       2=>'blue',
                       3=>'',
                       4=>''
                      );


规定不对非空值进行排序。应该保持原样,即只有空值应移动到数组的末尾。

我确实需要我的示例所显示的内容。

最佳答案

这个线程中已经有更好/更优雅的答案,但这也可以工作:

//strip empties and move to end
foreach ($givenArray as $key => $value)
{
    if ($value === "")
    {
        unset($givenArray[$key]);
        $givenArray[] = $value;
    }
}

// rebuild array index
$givenArray = array_values($givenArray);


Codepad demo

07-24 09:19