2017-04-08 131 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的價值。

我該怎麼做。

Thiks很多!

+0

您是否嘗試遍歷數組以構建具有所需鍵和值的新數組? –

+0

不知道我明白這個問題。你想把它變成像這個數組一樣的一維數組(「id」=>「345412」); –

回答

2

編輯:您的意見

後更新,所以下面在這裏您的意見後更新的代碼:

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

這是什麼,現在呢,之前使用相同的原代碼,它然後添加將$ cleanArray數組添加到新數組$ $ arrayArray,該數組從$ cleanArray的「id」值中獲取密鑰。

請注意,如果最終在原始$數組中有多個數據集,並且有兩個或多個id等,那麼這將失敗。爲了解決這個問題,您需要做一個額外的foreach循環和更多邏輯。

原始響應:

如果我正確理解你的問題,你想通過數組迭代得到的東西,如:

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

要做到這一點,我第一個陣列設置爲變量,有想象力的叫做$ array。

然後使用以下功能和上面的輸出將返回爲$ cleanArray:

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

這樣做是創建一個空白陣列名爲$ cleanArray,通過每個指標在$數組,然後循環將值添加到$ cleanArray,作爲鍵/值對。

希望這是你想要的。

+0

如果我想要一個uuid作爲最大的關鍵,像? $ cleanArray [$ sub ['import_uuid'] => [$ sub [「import_key」]] = $ sub [「import_value」];它不適用於這種方式:S –

+0

對不起,我不認爲我明白你想結束什麼?你能澄清一點嗎?但是,不會,因爲$ sub數組包含的每個數組都在$ array的數組中,所以對於第一次迭代,$ sub包含:array( 「import_key」=>「id」, 「import_value」=> 「345412」 )。這意味着它沒有'import_uuid'供它參考... –

+0

我想要的是:123 => [id => 123,name => 123];等等 –