42

私は次のような配列の配列を持っています:

array( array(), array(), array(), array() );

メイン配列内の配列には、4つのキーとその値が含まれています。キーは、次のようなすべてのアレイで同じです。

array( 'id' => 'post_1',
       'desc' => 'Description 1',
       'type' => 'type1',
       'title' => 'Title'
     );

array( 'id' => 'post_2',
       'desc' => 'Description 2',
       'type' => 'type2',
       'title' => 'Title'
     );

したがって、別の配列を作成し、値と値を抽出して、idtypeのような新しい配列に配置します。

array( 'post_1' => 'type1', 'post_2' => 'type2'); // and so on

この配列のキーはidキーの古い配列の値になり、それらの値はtypeキーの値になります。

それで、これを達成することは可能ですか?php.net配列関数を検索しようとしましたが、どの関数を使用すればよいかわかりませんか?

4

2 に答える 2

126

PHP 5.5 では、必要なことを正確に実行する配列関数が導入されました。この質問で将来誰かに役立つことを期待して、これに答えています。

これを行う関数はarray_column. 欲しいものを手に入れるには、次のように書きます。

array_column($oldArray, 'type', 'id');

PHP の下位バージョンで使用するには、受け入れられた回答を使用するか、この関数が PHP でどのように実装されているかを調べて、このライブラリを使用します: https://github.com/ramsey/array_column

于 2013-08-21T09:41:19.540 に答える
34

古き良きループを使用するだけです。

$newArray = array();
foreach ($oldArray as $entry) {
    $newArray[$entry['id']] = $entry['type'];
}
于 2012-04-26T07:14:59.567 に答える