0

キーで分割したい多次元配列があります。理想的には、多次元配列のキー値から新しい名前付き配列を動的に作成したいと考えています。

論理的には、キーを取得する必要があると想定し、キーごとに多次元配列をループし、その反復に対応するキーの値を新しい配列にプッシュします。

各内部配列は非常に大きく、理想的には、その配列がペアの数を変更しても機能するように設定したいと考えています。

ここにある材料のいくつかは知っているような気がしますが、それをまとめることができないようです.

配列の例:

$data = Array(
    [0] => Array
    (
        [count] => 0
        [id] => 221
        [title] => Home
        [latitude] => -34.0284224
        [longitude] => 18.46636710000007
    ),
    [1] => Array
    (
        [count] => 1
        [id] => 321
        [title] => office
        [latitude] => -34.0284224
        [longitude] => 18.46636710000007
    ),
    [2] => Array
    (
        [count] => 2
        [id] => 124
        [title] => storage
        [latitude] => -34.0284224
        [longitude] => 18.46636710000007

    )
)

そして私が作りたいのは:

$count = array(0,1,2);
$id = array(221,321,124);
$title = array('home','office','storage');

などなど

ありとあらゆる助けが大歓迎です。

4

2 に答える 2

3

可変変数はあなたが探しているもののようです:

foreach($data as $element) {
    foreach($element as $key => $value) {
        if(!isset($$key)) {
            $$key = array();
        }

        array_push($$key, $value);
    }
}
于 2013-11-09T21:24:41.273 に答える
1

PHP >=5.5 を使用している場合は、array_column()でこれを行うことができます。

$count = array_column($data, 'count');
$id = array_column($data, 'id');
$title = array_column($data, 'title');

より一般的にするには:

foreach($data[0] as $key => $value) {
    $$key = array_column($data, $key);
}

しかし、ここでの危険は、作成している変数の名前を必ずしも知っているとは限らないことです

より一般的な静止画

$newArray = array();
foreach($data[0] as $key => $value) {
    $newArray[$key] = array_column($data, $key);
}

より実行可能かもしれません

于 2013-11-09T21:26:52.090 に答える