現在の位置: ホーム> 最新記事一覧> array_filter() + array_values()でインデックス配列を再構築する方法

array_filter() + array_values()でインデックス配列を再構築する方法

M66 2025-06-04

PHPでは、配列は非常に一般的に使用されるデータ構造です。開発プロセス中に、アレイの空の値を削除して配列インデックスを再構築する必要がある状況に遭遇することがよくあります。幸いなことに、PHPはarray_filter()array_values()を提供し、このタスクを簡単に達成するのに役立ちます。

1。array_filter ()関数の紹介

array_filter()関数は、配列内の要素をフィルタリングするために使用されます。デフォルトでは、 array_filter()はfalsenullfalse0"など)の値で要素を削除します。この関数は、ではない元の配列内のすべての要素を含む新しい配列を返します。

サンプルコード:

 $array = [1, 0, 2, null, 3, '', 4];
$filteredArray = array_filter($array);
print_r($filteredArray);

出力結果:

 Array
(
    [0] => 1
    [2] => 2
    [4] => 3
    [6] => 4
)

上記のように、 array_filter()関数は配列のnull値を削除しますが、配列のインデックスを再構築することはなく、返された配列が元の配列のインデックスを保持します。

2。array_values ()関数の紹介

array_values()関数は、配列内のすべての値の新しい配列を返し、再インデックスします。通常、配列をフィルタリングした後、 array_values()を使用して配列を再インドします。

サンプルコード:

 $array = [1, 0, 2, null, 3, '', 4];
$filteredArray = array_filter($array);
$reindexedArray = array_values($filteredArray);
print_r($reindexedArray);

出力結果:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

array_values()を使用すると、配列のインデックスを正常に再構築し、すべてのnull値を削除します。

3。包括的な例:空の値をフィルターと配列インデックスを再構築する

array_filter()array_values()を組み合わせて、Arrayのnull値をフィルタリングして再インドックスにフィルタリングする実用的な関数を作成できます。

 function cleanAndReindexArray($array) {
    $filtered = array_filter($array); // 空の値をフィルタリングします
    return array_values($filtered);   // Reindex配列
}

$array = [1, 0, 2, null, 3, '', 4];
$cleanedArray = cleanAndReindexArray($array);
print_r($cleanedArray);

出力結果:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

4. URLのドメイン名の交換を処理します

配列にURLが含まれ、ドメイン名をM66.netに置き換える必要がある場合、 array_map()および正規表現で実行できます。

サンプルコード:

 $array = [
    'https://example.com/page1',
    'http://test.com/page2',
    'https://anotherdomain.com/page3'
];

$replacedArray = array_map(function($url) {
    return preg_replace('/https?:\/\/([^\/]+)/', 'https://m66.net', $url);
}, $array);

print_r($replacedArray);

出力結果:

 Array
(
    [0] => https://m66.net/page1
    [1] => http://m66.net/page2
    [2] => https://m66.net/page3
)

上記の例では、 preg_replace()を使用してURLのドメイン名を置き換え、 M66.netに変更しました。

要約します