【问题标题】:get result from mysql with multidimentional array使用多维数组从mysql获取结果
【发布时间】:2021-03-15 00:42:21
【问题描述】:

我有一个多维数组,但我不知道如何从数据库中获取任何等于任何多维数组 id 的行 大批 ( [0] => 数组 ( [id] => 828 [tok] => 90dcddc388d9b1 [user_id] => 1 [category_name] => 医学, [created_at] => 2020-12-03 00:08:55 )

[1] => Array
    (
        [id] => 829
        [tok] => f3404ba92a40f7
        [user_id] => 1
        [name] => Medicine
        [created_at] => 2020-12-03 00:18:09
    )

[2] => Array
    (
        [id] => 830
        [tok] => 2669483afacc47
        [user_id] => 1
        [name] => forever
        [created_at] => 2020-12-03 00:18:12
    )

[3] => Array
    (
        [id] => 831
        [tok] => 9b72ba6ab4d8d0
        [user_id] => 1
        [name] => joe
        [created_at] => 2020-12-03 00:18:14
    )

) ` 例如,我想从数据库中获取与此多维数组数组中的任何 id 相同的任何 id

【问题讨论】:

    标签: php sql arrays


    【解决方案1】:

    你可以像这样使用 foreach 函数:

    foreach ($multidimentional as $k => $v) { $array[$v['id']] = $v; }
    

    那就试试:var_dump($array);

    【讨论】:

      【解决方案2】:

      首先,您应该使用以下方法从数组中收集所有 id:

      $idsArray = array_column($yourArray,'id');
      

      然后搜索你的数据库:

      Model::whereIn('id', $idsArray)->get(); // laravel eloquent ORM
      

      或

      DB::table('YOUR_DB_TABLE')->whereIn('id', $idsArray)->get(); // laravel query builder
      

      或者使用 php mysqli:

      $query = "SELECT * FROM YOUR_TABLE WHERE id in = ?";
      $stmt = $conn->prepare($query);
      $stmt->bind_param("s", implode(',', $idsArray));
      $stmt->execute()
      $result = $stmt->get_result();
      $row = $result->fetch_assoc();
      

      【讨论】:

      • 不工作说致命错误:未捕获的错误:在 bool 上调用成员函数 bind_param()
      • 这只是一个例子,不是经过测试的代码..只是解释方法
      猜你喜欢
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2012-07-25
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 2011-06-30
      相关资源
      最近更新 更多