0

次のような配列を取得しました。

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」の数字です。

どうすればそれができますか?

4

4 に答える 4

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)

ただし、元の配列を目的の方法で構築することをもう一度考えてください。これは、余裕がない場合にのみ行ってください。

于 2011-09-26T20:53:12.297 に答える
1

既存の配列を変更せずに、次のように確認できます。

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

論理的にcanvは、 がこれらの値の配列である場合、値は、メンバーを指す配列キーではなく、配列メンバーである必要があります。それらを配列キーとして使用するように求めています。後でキーとして動作させたい場合 (配列値を指すために使用する場合) を除き、ここでは変更しないでください。

于 2011-09-26T20:53:29.153 に答える
1

4、6、9、7 は値ですが、配列キーを探しているため機能しませんが、使用するとor ifの値がリストにない場合のarray_search($gid, $result['canv'])インデックスが見つかります。$gidfalse$gid

したがって、これは機能します:

if(array_search($gid, $result['canv']) !== false){
    //Do Stuff
}
于 2011-09-26T20:56:47.740 に答える
0

それでは、あなたはそれをそのようにしたくないと思います....あなたはそれを次のようにしたいと思います:

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

必要な値を指定していませんが、問題にならない場合があります。必要に応じてそれに到達することができますが、その中に配列が含まれている場合は、キーを値と交換する(4,6,9,7)だけで済みます。array_flip

于 2011-09-26T20:57:27.870 に答える