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

WBOY
リリース: 2016-06-20 12:26:54
オリジナル
1122 人が閲覧しました

元の配列は

$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を直接代入しています

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!