PHPで2次元配列をインターセプトする方法

王林
リリース: 2023-05-19 13:14:09
オリジナル
1002 人が閲覧しました

PHP は非常に一般的に使用されるスクリプト言語であり、日常の開発では 2 次元配列をインターセプトする必要があることがよくあります。 PHP を使用して 2 次元配列を操作すると非常に便利ですが、2 次元配列をインターセプトする方法をいくつか紹介します。

1. array_slice() 関数を使用する

array_slice() 関数は PHP に付属する関数で、配列の一部をインターセプトするために使用できます。この関数を使用すると、切り取る開始位置と長さを指定するだけで、簡単に2次元配列を切り取ることができます。

使用方法は以下の通りです。

array array_slice ( array $array , int $offset , int $length = null , bool $preserve_keys = false )
ログイン後にコピー

このうち、 $array はインターセプト対象の配列、 $offset はインターセプトの開始位置、 $length はインターセプトの長さ、 $preserve_keys は、元のキー名を保持するかどうかを示します。デフォルトは false です。

この関数は新しい配列を返し、元の配列の値には影響しないことに注意してください。以下に例を示します。

$arr = array(
    array('name'=>'张三','age'=>20),
    array('name'=>'李四','age'=>22),
    array('name'=>'王五','age'=>24),
    array('name'=>'赵六','age'=>26),
    array('name'=>'孙七','age'=>28)
);

$new_arr = array_slice($arr, 1,2);

print_r($new_arr);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [0] => Array
        (
            [name] => 李四
            [age] => 22
        )

    [1] => Array
        (
            [name] => 王五
            [age] => 24
        )

)
ログイン後にコピー
ログイン後にコピー

上記のコードは、元の配列の 2 番目の要素から始まる 2 つの要素をインターセプトし、新しい配列を返します。

2. for ループの使用

for ループを使用すると、2 次元配列の一部をインターセプトすることもでき、ループの開始位置と終了位置を制御することでインターセプトを実現します。以下は例です:

$arr = array(
    array('name'=>'张三','age'=>20),
    array('name'=>'李四','age'=>22),
    array('name'=>'王五','age'=>24),
    array('name'=>'赵六','age'=>26),
    array('name'=>'孙七','age'=>28)
);

$new_arr = array();
for($i=1;$i<=2;$i++){
    array_push($new_arr,$arr[$i]);
}

print_r($new_arr);
ログイン後にコピー

出力結果は前の例と同じです:

Array
(
    [0] => Array
        (
            [name] => 李四
            [age] => 22
        )

    [1] => Array
        (
            [name] => 王五
            [age] => 24
        )

)
ログイン後にコピー
ログイン後にコピー

上記のコードは、「for ループ」を使用して、2 番目の要素から始まる 2 つの要素をインターセプトし、新しい配列を返します。

3. array_splice() 関数を使用する

array_splice() 関数は PHP に付属する関数でもあり、配列の一部をインターセプトするために使用できます。この関数を使用すると、切り取る開始位置と長さを指定するだけで、簡単に2次元配列を切り取ることができます。

使用方法は以下の通りです。

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement = array() ]] )
ログイン後にコピー

このうち、 $input はインターセプトする配列、 $offset はインターセプトの開始位置、 $length はインターセプトの長さ、 $replacement は置換内容を表します。配列またはその他のタイプの値を指定できます。

この関数は元の配列の値を変更することに注意してください。つまり、インターセプト後に元の配列が変更されます。以下に例を示します。

$arr = array(
    array('name'=>'张三','age'=>20),
    array('name'=>'李四','age'=>22),
    array('name'=>'王五','age'=>24),
    array('name'=>'赵六','age'=>26),
    array('name'=>'孙七','age'=>28)
);

array_splice($arr, 1,2);

print_r($arr);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 20
        )

    [1] => Array
        (
            [name] => 赵六
            [age] => 26
        )

    [2] => Array
        (
            [name] => 孙七
            [age] => 28
        )

)
ログイン後にコピー

上記のコードは、元の配列の 2 番目の要素から始まる 2 つの要素をインターセプトし、元の配列を変更します。

4. array_slice() と foreach ループの使用

場合によっては、2 次元配列内の特定の列をインターセプトする必要があり、これは array_slice() 関数と foreach ループを使用することで実現できます。 。以下に例を示します。

$arr = array(
    array('name'=>'张三','age'=>20),
    array('name'=>'李四','age'=>22),
    array('name'=>'王五','age'=>24),
    array('name'=>'赵六','age'=>26),
    array('name'=>'孙七','age'=>28)
);

$new_arr = array();
foreach($arr as $val){
    $new_arr[] = array_slice($val,0,1);
}

print_r($new_arr);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [0] => Array
        (
            [name] => 张三
        )

    [1] => Array
        (
            [name] => 李四
        )

    [2] => Array
        (
            [name] => 王五
        )

    [3] => Array
        (
            [name] => 赵六
        )

    [4] => Array
        (
            [name] => 孙七
        )

)
ログイン後にコピー

上記のコードは、2 次元配列の最初の列をインターセプトし、新しい配列を返します。

上記は 2 次元配列をインターセプトするいくつかの方法であり、日常の開発の問題の解決に役立つことを願っています。

以上がPHPで2次元配列をインターセプトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート