我有一個數組看起來像這樣: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」中的一個數字。
怎麼辦?
我有一個數組看起來像這樣: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」中的一個數字。
怎麼辦?
這將翻轉值成爲關鍵,反之亦然:
$result["canv"] = array_flip($result["canv"]);
所以不是
array(1 => "4", 2 => "6", 3 => "9", 4 => "7")
你必須
array("4" => 1, "6" => 2, "9" => 3, "7" => 4)
但後來重新考慮建設原始數組以所需的方式進行,只有在您無法承受的情況下才會執行此操作。
沒有任何修飾,與現有的陣列,您可以檢查它爲:
if (in_array($gid, $result["canv"])) {
// $gid is in the array
}
從邏輯上講,如果canv
是被那些值的數組,該值應該是陣列成員,而不是數組鍵這指向成員。您要求將它們用作數組鍵。除非你希望它們以後可以用作鍵,它們將被用來指向數組值,你現在不應該改變它們。
它不會工作,因爲你正在尋找數組鍵,而4,6,9和7的值,但如果你使用array_search($gid, $result['canv'])
你會發現$gid
或false
索引如果$gid
的價值不在列表中。
那麼這將工作:
if(array_search($gid, $result['canv']) !== false){
//Do Stuff
}
然後,我不認爲你希望它看起來像....你希望它看起來是這樣的:
array(
"canv" => array(
4 => "value",
6 => "value",
9 => "value",
7 => "value"
)
)
你做不指定你想要的值,但可能並不重要。不管你想要什麼,你都可以到達,但是如果你用(4,6,9,7)
排列,你可以做array_flip
,它將交換鍵值和值。