我有一个看起来像这样的数组:
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
or false
if$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
,它会用值交换键。