【问题标题】:MySQL in() multidimensional arrayMySQL in() 多维数组
【发布时间】:2012-02-08 22:03:31
【问题描述】:

以下工作(数组由另一个 MySQL 查询填充):

$array=(1,4,5,6,8);
$query=SELECT * FROM table WHERE Id IN(".implode(",",$array)."

但是我该怎么做?:

$array=(
array('Id'=>1, 'Detail1'=>$row['Detail1'], 'Detail2'=>$row['Detail2']),
array('Id'=>4, 'Detail1'=>$row['Detail1'], 'Detail2'=>$row['Detail2']),
array('Id'=>5, 'Detail1'=>$row['Detail1'], 'Detail2'=>$row['Detail2']),
array('Id'=>6, 'Detail1'=>$row['Detail1'], 'Detail2'=>$row['Detail2']),
array('Id'=>8, 'Detail1'=>$row['Detail1'], 'Detail2'=>$row['Detail2']),
);
$query=SELECT * FROM table WHERE Id IN(".implode(",",$array[]['Id'])."

所以我需要获取所有的 id,我该如何在这个多维数组中做到这一点?

谢谢!

【问题讨论】:

    标签: php mysql arrays multidimensional-array


    【解决方案1】:

    我会做这样的事情:

    $id_list = array();
    
    foreach($array as $item) {
     $id_list[] = $item['Id'];
    }
    
    $query = "SELECT * FROM table WHERE Id IN(".implode(',',$id_list).")";
    

    【讨论】:

      【解决方案2】:

      另一种选择:

      $list = array_reduce($id_list,function($total,$cur_value){
           if(!is_null($total)) $total .= ',';
           return $total.$cur_value['id'];
        });
      $query = "SELECT * FROM table WHERE Id IN(".$list.")";
      

      【讨论】:

        猜你喜欢
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 2010-12-24
        • 1970-01-01
        • 2014-12-21
        相关资源
        最近更新 更多