1

私がそのような配列を持っていると仮定します:

$arr = array(0 => '', 1 => '', 2 => 'abc', 3 => '', 4 => '', 5 => 'def', 6 => '');

空でない値に達するまで配列から空の値を削除する関数が必要です。したがって、この例では、結果は次のようになります。

array(0 => 'abc', 1 => '', 2 => '', 3 => 'def', 4 => '');

独自の関数を作成することはできますが、問題は.. PHPには、これを実現する何かがすでにあるのでしょうか。できるだけ少ないリソースを使用するためにこれを行う簡単な方法はありますか?

インデックスの関連付けは重要ではありません。実際、私はそれがリセットされることを好みます

ありがとう。

4

2 に答える 2

2

私はこのようなものを提案します:

while($arr && !$arr[0]) array_shift($arr);

これを行うための組み込み関数はありません。

于 2013-03-02T01:19:58.393 に答える
0

PHPの配列機能を少し拡張したい人のために、私が便利だと思った2つの追加関数があります。

/**
 * @abstract Removes empty elements from the left side of the array until it hits a value.
 * @param array $array The array.
 * @return array|boolean Returns the modified array on success, otherwise false.
 */
function array_filter_left($array) {
    if (!is_array($array))
        return false;
    while ($array && !$array[0])
        array_shift($array);
    return $array;
}

/**
 * @abstract Removes empty elements from the right side of the array until it hits a value.
 * @param array $array The array.
 * @return array|boolean Returns the modified array on success, otherwise false.
 */
function array_filter_right($array) {
    if (!is_array($array))
        return false;
    while ($array && !$array[sizeof($array) - 1])
        array_pop($array);
    return $array;
}
于 2013-03-05T07:27:29.897 に答える