2011-09-26 47 views
0

我有一個數組看起來像這樣:PHP數組重建

array("canv" => array(1 => "4", 2 => "6", 3 => "9", 4 => "7"); 

我需要它看起來像這樣:

array("canv" => array("4", "6", "9", "7"); 

,所以我可以伊斯利檢查是否存在的價值是這樣的:

if(isset($result["canv"][$gid]))其中$ gid是「4」,「6」,「9」,「7」中的一個數字。

怎麼辦?

回答

3

這將翻轉值成爲關鍵,反之亦然:

$result["canv"] = array_flip($result["canv"]); 

所以不是

array(1 => "4", 2 => "6", 3 => "9", 4 => "7") 

你必須

array("4" => 1, "6" => 2, "9" => 3, "7" => 4) 

但後來重新考慮建設原始數組以所需的方式進行,只有在您無法承受的情況下才會執行此操作。

1

沒有任何修飾,與現有的陣列,您可以檢查它爲:

if (in_array($gid, $result["canv"])) { 
    // $gid is in the array 
} 

從邏輯上講,如果canv是被那些值的數組,該值應該是陣列成員,而不是數組鍵這指向成員。您要求將它們用作數組鍵。除非你希望它們以後可以用作鍵,它們將被用來指向數組值,你現在不應該改變它們。

1

它不會工作,因爲你正在尋找數組鍵,而4,6,9和7的值,但如果你使用array_search($gid, $result['canv'])你會發現$gidfalse索引如果$gid的價值不在列表中。

那麼這將工作:

if(array_search($gid, $result['canv']) !== false){ 
    //Do Stuff 
} 
0

然後,我不認爲你希望它看起來像....你希望它看起來是這樣的:

array( 
    "canv" => array( 
     4 => "value", 
     6 => "value", 
     9 => "value", 
     7 => "value" 
    ) 
) 

你做不指定你想要的值,但可能並不重要。不管你想要什麼,你都可以到達,但是如果你用(4,6,9,7)排列,你可以做array_flip,它將交換鍵值和值。