我有一个看起来像这样的数组:
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”中的数字。
怎么做?
答案 0 :(得分: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 :(得分:1)
如果没有任何修改,使用现有数组,您可以将其检查为:
if (in_array($gid, $result["canv"])) {
// $gid is in the array
}
逻辑上,如果canv
是这些值的数组,则值应该是数组成员而不是指向成员的数组键。您要求将它们用作数组键。除非您希望它们稍后表现为键,否则它们将用于指向数组值,您现在不应该更改它们。
答案 2 :(得分:1)
它不起作用,因为您正在寻找数组键,而4,6,9和7是值,但如果您使用array_search($gid, $result['canv'])
,您将找到$gid
的索引或如果false
的值不在列表中,则为$gid
。
所以这会奏效:
if(array_search($gid, $result['canv']) !== false){
//Do Stuff
}
答案 3 :(得分:0)
然后我认为你不希望它看起来像......你希望它看起来像这样:
array(
"canv" => array(
4 => "value",
6 => "value",
9 => "value",
7 => "value"
)
)
您未指定所需的值,但可能无关紧要。您可以按照自己的意愿到达,但如果您最终使用包含(4,6,9,7)
的数组,则只需执行array_flip
即可将密钥与值进行交换。