0

私はこのような文字列を持っています、

IT、メディア、広告

次に、次のコードを実行しています。

$criteria = explode(",", $string);

print_r が $criteria で実行されると、明らかに次のようになります。

array([0] => IT、[1] => メディア、[2] => 'ADVERTISING')

$criteria を使用して、codeigniter アプリケーションのデータベース内のキーワードを照合します。次のようなものを使用したいと考えています。

$this->db->like($criteria);

これが機能するには、 $criteria 配列を次のようにする必要がありますが、

array([セクター] => IT、[セクター] => メディア、[セクター] => 'ADVERTISING')

これどうやってするの?

4

4 に答える 4

3

PHP は、同じキーを持つ複数の値を持つことはできません。

于 2011-06-07T15:14:28.950 に答える
1

このような配列を構築することはできません。配列のキーは同一であるため、値は互いに上書きされます。

また、あなたが探している方法は次のとおりだと思いますwhere_in()

$names = array('Frank', 'Todd', 'James');

$this->db->where_in('username', $names);

// Produces: WHERE username IN ('Frank', 'Todd', 'James')
于 2011-06-07T15:21:29.807 に答える
0

次のような配列で OR WHERE 句を作成しようとしている場合:

$criteria = array(
    0 => 'IT',
    1 => 'MEDIA',
    2 => 'ADVERTISING',
)

それをループしてlike()andor_like()メソッドを使用できます。

foreach ($criteria as $index => $value) {
    if ($index == 0)
        $this->db->like('sector', $value);
    else
        $this->db->or_like('sector', $value);
}

// Produces WHERE sector LIKE '%IT%' OR sector LIKE '%MEDIA%' OR sector LIKE '%ADVERTISING%';
于 2011-06-07T15:32:06.103 に答える
0

次のように配列を作成するのはどうですかcriteria

$criteria = array('sector'=>explode(",", $string));

出力

var_dump($criteria);

array(1) {
  ["sector"]=>
  array(3) {
    [0]=>
    string(2) "IT"
    [1]=>
    string(6) " MEDIA"
    [2]=>
    string(12) " ADVERTISING"
  }
}
于 2011-06-07T15:21:35.947 に答える