2015-04-16 27 views
-1

替換數組鍵我有一個數組,看起來像這樣:與另一個值

[0] => stdClass Object 
    (
     [id] => 152 
     [type_id] => 5 
     [name] => test 1 
    ) 

[1] => stdClass Object 
    (
     [id] => 153 
     [type_id] => 8 
     [name] => test 2 
    ) 

[2] => stdClass Object 
    (
     [id] => 154 
     [type_id] => 13 
     [name] => test 3 
    ) 

有什麼辦法,我可以轉換成下面的數組?

[5] => stdClass Object 
    (
     [id] => 152 
     [name] => test 1 
    ) 

[8] => stdClass Object 
    (
     [id] => 153 
     [name] => test 2 
    ) 

[13] => stdClass Object 
    (
     [id] => 154 
     [name] => test 3 
    ) 

基本上我用type_id值更改了數組鍵。

+0

要刪除TYPE_ID關鍵 –

+1

有你嘗試過什麼? – Rizier123

+1

loop + unset(object-> type_id) – felipsmartins

回答

3

你應該能夠取消設置stdClass的屬性如下:

$newObject = array(); 
foreach ($oldObject as $object) { 
    $typeID = $object->type_id; 
    $newObject[$typeID] = $object; 
    unset($newObject[$typeID]->type_id); 
} 

這將遍歷您stdClass對象數組並保存進入一個新的數組。之後,物業type_id將被刪除。

2

將它傳遞到返回一個新的數組的函數:

function convert($arr) 
{ 
    $new_arr = array(); 
    for ($i = 0; $i < count($arr); $i++) 
    { 
     $id = $arr[$i]['type_id']; 
     unset($arr[$i]['type_id']); 
     $new_arr[$id] = $arr[$i]; 
    } 
    return $new_arr; 
}