ホームページ  >  記事  >  バックエンド開発  >  配列は同じ val 値に基づいて複数の配列を形成します

配列は同じ val 値に基づいて複数の配列を形成します

WBOY
WBOYオリジナル
2016-06-20 12:26:541075ブラウズ

元の配列は

$arr        =   array(            array(                'id'    =>  '1',                'name'      =>  'a',                'project'   =>  '1',            ),            array(                'id'    =>  '2',                'name'      =>  'b',                'project'   =>  '3',            ),            array(                'id'    =>  '3',                'name'      =>  'c',                'project'   =>  '2',            ),            array(                'id'    =>  '4',                'name'      =>  'd',                'project'   =>  '1',            ),        );

以下に示すように、プロジェクトの同一性に基づいて複数の配列を形成したいと考えています。 >助けてください。プロジェクトを順番に並べ替えて、次の val[project] が前のものと同じかどうかをループして判断したいのですが、異なる場合は新しい配列が形成されます。
でも他に効率的な方法がないか聞きたいです
$arr1        =   array(            array(                'id'    =>  '1',                'name'      =>  'a',                'project'   =>  '1',            ),            array(                'id'    =>  '4',                'name'      =>  'd',                'project'   =>  '1',            ),        );        $arr2        =   array(            array(                'id'    =>  '2',                'name'      =>  'b',                'project'   =>  '3',            ),        );        $arr3        =   array(            array(                'id'    =>  '3',                'name'      =>  'c',                'project'   =>  '2',            ),        );




ディスカッションへの返信 (解決策)
他の人は自分で検証します

extract() は一般的にどのようなときに使用されますか?

$arr        =   array(            array(                'id'    =>  '1',                'name'      =>  'a',                'project'   =>  '1',            ),            array(                'id'    =>  '2',                'name'      =>  'b',                'project'   =>  '3',            ),            array(                'id'    =>  '3',                'name'      =>  'c',                'project'   =>  '2',            ),            array(                'id'    =>  '4',                'name'      =>  'd',                'project'   =>  '1',            ),        );foreach($arr as $v) $r['arr' . $v['project']][] = $v;extract($r);print_r($arr1);
ありがとう、これは$r[ 'arr' . $v['project']][] = $v; 実際、この文は私が望む結果を達成します。そのメソッドを使用するのは疲れます
Array(    [0] => Array        (            [id] => 1            [name] => a            [project] => 1        )    [1] => Array        (            [id] => 4            [name] => d            [project] => 1        ))

前にextract()を見たところ、$+key名を持つ変数にvalを直接代入しています

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。