带有sql的多维数组

时间:2013-02-04 18:51:21

标签: php mysql sql

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

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

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

) etc

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

3 个答案:

答案 0 :(得分: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 );

答案 1 :(得分: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))";

答案 2 :(得分: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查询。