1

我在一个名为 $ids 的变量中有一个数组,该数组如下所示:

Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 7
        )

) etc

我需要在 WHERE id IN ($ids); 中使用它 我该怎么做?谢谢。

4

3 回答 3

2

您的问题陈述有点令人困惑。但是您似乎想知道您要做什么,除了您不知道如何编译 id 列表?如果是这种情况,试试这个:

$ids = array_map( function( $el ) {
    return $el['id'];
}, $array );

如果您的 PHP 版本低于 5.3,则不能使用匿名函数。请改用下面的代码。

function comb_arr( $el ) {
    return $el['id'];
}
$ids = array_map( 'comb_arr', $array );
于 2013-02-04T18:55:31.400 回答
1

试试这个...........

$data = Array
 (
[0] => Array
    (
        [id] => 1
    )

[1] => Array
    (
        [id] => 7
    )

 )  
$ids = array();

    foreach($data as $key => $d) {

      array_push($ids,$d['$id']);

   }

   $sql = "select * from tablename where id IN(implode(',',$ids))";
于 2013-02-04T19:01:55.610 回答
0

如果您的意思是您需要使用数组构建查询,我认为您基本上想要构建查询字符串,因此您可以使用 for 循环。从一个基本字符串开始,比如

$query = "SELECT whatevercolumns FROM whatevertables WHERE id=";

//then loop through your array

for($j = 0; $j < sizeof($array); $j++)
{
     $query .= array[$j]

     //if it's not the last id you want to add, add an OR to your sql query
     if($j < (sizeof($array) - 1))
     {
          $query .= " OR ";
     }
}

不清楚你在问什么,你不能使用 sql 来查询你的 php 数组。我假设您想使用您的数组来填充 sql 查询。

于 2013-02-04T19:00:22.860 回答