2017-04-08 15 views
0

私は私的なプロジェクトに取り組んでおり、次の問題があります。二重キーの多次元配列

これは私が持っているものです。

array(3) { 
    [0]=> 
    array(2) { 
    ["import_key"]=> 
    string(2) "id" 
    ["import_value"]=> 
    string(6) "345412" 
    } 
    [1]=> 
    array(2) { 
    ["import_key"]=> 
    string(4) "date" 
    ["import_value"]=> 
    string(10) "21-08-2017" 
    } 
    [2]=> 
    array(2) { 
    ["import_key"]=> 
    string(4) "name" 
    ["import_value"]=> 
    string(53) "Psy-Fi shuttle bus Psy-Fi Festival - Schiphol Airport" 
} 
} 

私が欲しいものimport_keyは、キーと値としてimport_valueとして割り当てされること、です。

どうすればいいですか?

Thnks a lot!

+0

あなたは必要なキーと値で新しいものを作成するために配列を反復しようとしましたか? –

+0

私はその質問を理解していますか分かりません。この配列( "id" => "345412")のような1次元配列に変換しますか? –

答えて

2

EDIT:

$cleanArray = array(); 
$resultArray = array(); 
foreach ($array as $sub) { 
    $cleanArray[$sub["import_key"]] = $sub["import_value"]; 
} 
$resultArray = array($cleanArray['id']=>$cleanArray); 

これは今、以前と同じ元のコードを使用していない何、それはその後、追加します。ここに以下のコメントが更新されたコードである後は、だからあなたのコメントの後に

を更新しました$ cleanArray配列を新しい配列$ resultArrayに追加します。この配列は、$ cleanArrayの 'id'値からキーを取得します。

元の$配列に複数のデータセットがあり、2つ以上のIDなどがある場合、これは失敗します。これに対処するには、余分なforeachループを実行する必要があります。論理。

オリジナルの応答:

私はあなたのような何かを得るために配列を反復処理したい正しくあなたの質問を理解していれば:

Array (
    [id] => 345412 
    [date] => 21-08-2017 
    [name] => Psy-Fi shuttle bus Psy-Fi Festival - Schiphol Airport 
) 

はこれを行うために、私は変数にあなたの最初の配列を設定しますimaginatively $ arrayと呼ばれます。その後、$ cleanArrayと呼ばれる空白の配列を作成します$配列のインデックスのそれぞれをループして、これは何

$cleanArray = array(); 
foreach ($array as $sub) { 
    $cleanArray[$sub["import_key"]] = $sub["import_value"]; 
} 

は次のとおりです。

その後、次の機能を使用して、上記の出力は$ cleanArrayとして返されます値を$ cleanArrayにキーと値のペアとして追加します。

希望はこれです。

+0

と私はトップキーのようなuuidをしたい場合は? $ clean [$ sub ['import_uuid'] => [$ sub ["import_key"]] = $ sub ["import_value"];それはこのように正しく動作しません:S –

+0

申し訳ありませんが、私はあなたが最終的に何をしたいのか分からないと思いますか?あなたは少し明確にできますか?しかし、いいえ、すべての$サブ配列が含まれているので、それは動作しません。$ arrayの各内部配列は最初の繰り返しのため$ subに含まれています:array( "import_key" => "id"、 "import_value" => "345412" )。これは、それが参照するための 'import_uuid'がないことを意味します... –

+0

私は何をしますか:123 => [id => 123、name => 123]; –