首页 > 解决方案 > 使用多维数组从mysql获取结果

问题描述

我有一个多维数组,我不知道如何从数据库中获取任何等于任何多维数组 id ` Array ( [0] => Array ( [id] => 828 [tok] => 90dcddc388d9b1 [ user_id] => 1 [category_name] => Medicine, [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

标签: phpsqlarrays

解决方案


首先,您应该使用以下方法从数组中收集所有 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();

推荐阅读