PHP/MySQL:根据数组ID打印数组(查询结果)中的特定值

PHP/MySQL:根据数组ID打印数组(查询结果)中的特定值,php,arrays,mysqli,associative-array,Php,Arrays,Mysqli,Associative Array,我使用以下PHP行从MySQL表中查询数据。 我想将查询结果存储在一个数组中,然后在同一页上根据其ID打印该数组中的特定值 我是PHP新手,希望有人能帮我解释一下我做错了什么或遗漏了什么。我假设我错误地创建了数组 我的PHP(相关部分,变量在本页前面定义): $con = mysqli_connect($host_name, $user_name, $password, $database); $result = mysqli_query($con, "SELECT id, $col FROM

我使用以下PHP行从MySQL表中查询数据。 我想将查询结果存储在一个数组中,然后在同一页上根据其ID打印该数组中的特定值

我是PHP新手,希望有人能帮我解释一下我做错了什么或遗漏了什么。我假设我错误地创建了数组

我的PHP(相关部分,变量在本页前面定义):

$con = mysqli_connect($host_name, $user_name, $password, $database);
$result = mysqli_query($con, "SELECT id, $col FROM $table ORDER BY id");
$rows = array();

if($result)
{
    while($row = mysqli_fetch_array($result))
    {
        print_r($row);
    } 
}
var_dump($rows);
Array ( [0] => testid1 [id] => testid1 [1] => testval1 [en] => testval1 ) Array ( [0] => testid2 [id] => testid2 [1] => testval2 [en] => testval2 ) Array ( [0] => testid3 [id] => testid3 [1] => testval3 [en] => testval3 ) array(0) { }
我的当前阵列(如上打印时):

$con = mysqli_connect($host_name, $user_name, $password, $database);
$result = mysqli_query($con, "SELECT id, $col FROM $table ORDER BY id");
$rows = array();

if($result)
{
    while($row = mysqli_fetch_array($result))
    {
        print_r($row);
    } 
}
var_dump($rows);
Array ( [0] => testid1 [id] => testid1 [1] => testval1 [en] => testval1 ) Array ( [0] => testid2 [id] => testid2 [1] => testval2 [en] => testval2 ) Array ( [0] => testid3 [id] => testid3 [1] => testval3 [en] => testval3 ) array(0) { }
示例:
例如,我想打印此数组中ID为=“testid2”的项的值。 在这种情况下,打印值应为“testval2

多谢各位, Mike将数据存储为:

for
(
    $set = array(); 
    $row = $result->fetch_assoc(); 
    // use value of `id` as the key in your `$set`
    $set[$row['id']] = $row
);
print_r($set);

// later:
$id = 1;
echo $set[$id]['en'];
// or
echo $set[$id][$lang];

您只需使用
fetch_all()
然后使用列搜索即可

$con = mysqli_connect($host, $username, $password, $database);
$result = mysqli_query($con, "SELECT id, $lang FROM $table ORDER BY id");
$set = $result->fetch_all(MYSQLI_ASSOC);

$key = array_search('testid2', array_column($set, 'id'));

echo $set[$key]['en'];
您可以使用with将查询输出(行和列)转换为键值格式(键为
id
,值为
en
列):


print\r
不创建数组,而是输出数组或对象中的所有值。更改为
$rows[]=$row
中,而
。。。或者直接使用。@user3783243:谢谢。您是否有一个示例或链接来演示如何创建数组以及如何从中打印值?
print\r($set['1'])<代码>打印($set['1']['id'])