2014-03-02 90 views
-1

所以具有類似於此重新格式化陣列根據數組值的PHP

$arr[0]['name'] = 'Name'; 
$arr[0]['id'] = 2382; 

$arr[1]['name'] = 'Name'; 
$arr[1]['id'] = 2838; 

$arr[2]['name'] = 'Name'; 
$arr[2]['id'] = 2832; 

陣列如何能重新格式化陣列(2 0,1,)與值陣列的id替換初始索引?這可能嗎?最終的陣列會是這樣

$arr[1922]['name'] = 'Name'; 
$arr[2929]['name'] = 'Name'; 
$arr[3499]['name'] = 'Name'; 

感謝

+0

一個簡單的foreach會做的伎倆,添加新的數組鍵(你的ID),然後取消設置原始 –

+0

創建一個新的空數組。然後遍歷原始數組並將這些內容添加到新數組中。 –

回答

2

這是相當簡單的。

這只是一個循環遍歷原始數組並隨着時間的推移構建新數組的情況。

一旦你完成了,你可以,如果你願意,用舊的替換新的陣列。

foreach ($arr as $thisArray) { 
    $aNewArray[ $thisArray['id']]['name'] = $thisArray['name']; 
} 
$arr = $aNewArray; 

如果你有數組中元素的任意號碼,你只是想消滅ID,並保持休息,當您去,您可以解封ID,然後用這個數組:

foreach ($arr as $thisArray) { 
    $id = $thisArray['id']; 
    unset($thisArray['id']); 
    $aNewArray[ $id ] = $thisArray; 
} 
$arr = $aNewArray;