0

配列の値に基づいてドロップダウン リストを設定する必要があります。これは私のコードです。

ユーザーの ID が 1、2、3 であるとします。次に、これらの ID に対応する table_group を選択して、ドロップダウンに表示する必要があります。また、この場合の id 2 と 3 の値 23 の繰り返しのように、繰り返し値があってはなりません。この場合、値は 1 つだけ取得されます。$table_id は USERS TABLE から取得されます。

     $mod = explode(',',$table_id);
     $mod = array('1','2','3')
     $res = array();

     function addItems($items, $arr) {
        foreach ($items as $value) {
            if (!in_array($value, $arr)) {
                $arr[] = $value;
            }
        }

        return $arr;
     }

     $res = array();
     for ($i = $mod[0]; $i <= end($mod); $i++) {
        $query = $this->db->query("SELECT table_group FROM group where table_id = '$i'");
        $row = $query->row();
        $grp = $row->table_group;
        $group = explode(',', $grp);
        $res = addItems($group, $res);
     }
     return $res;

実際には機能していますが、ここで発生するエラーは、ユーザーが 1,2,4 を選択したと仮定した場合です。この場合、1、2、および 4 の table_group 値のみを選択する必要があります。しかし、私のコードでは、1,2,3,4 の値が選択されています。3,4,5 または 2,3,4 などの場合、コードは問題なく動作します。このエラーを解決するにはどうすればよいですか? コードを修正するだけです。

4

2 に答える 2

1

変化する、

for ($i = $mod[0]; $i <= end($mod); $i++) {
$query = $this->db->query("SELECT table_group FROM group where table_id = '$i'");

for ($i = 0; $i < count($mod); $i++) {
$query = $this->db->query("SELECT module_group FROM module_group where module_id = '$mod[$i]'");
于 2012-11-19T09:29:02.270 に答える
0

他の人が書いたことに関係なく。

ID と GROUP の関連付けられた配列に入れることができる 2 つのクエリがあります。

idVsgroups array
[1] = array(value11, value12, value 13)
[2] = array(value21, value 22, value 23)
[3] = array(value31, value 23)
[4] = array(value 41, value 13)
[5] = array(value 51)

その後、1、2、3 を選択した場合は、次の操作を行います。

foreach ($selected as $key) { $result[] = $selected[$key] }

すべてを $selected に入れるのはどれですか - 本当に簡単ですか? その後、array_unique を試してみるか、この連中がすでにあなたのために書いたものを実行してください

于 2012-11-19T05:24:23.247 に答える