繁体   English   中英

如何从PHP的sql查询中提取的两列以上创建关联数组?

[英]How to create an associative array from more than two columns fetched from a sql query in PHP?

我正在尝试使用来自获取的sql查询的值填充关联数组,之前我仅将其用于两列:

while($row = odbc_fetch_array($res1)){
    $key_words[utf8_encode($row['word'])] = utf8_encode($row['replace']);
}

。OUPUTS:

Array ( 
    [à] => a 
    [á] => a 
    [â] => a 
    [ã] => a 
    [ä] => a 
    [ç] => c 
    [é] => e 
    [è] => e 
    [ê] => e
)

但是现在我需要两个以上的列。 像这样的东西:

$array = array( subject => key => group  subject => key => group )

可能吗 ?

编辑2
这段代码:

while($row = odbc_fetch_array($res)){
    $replace[] = $row;
}

输出结果:

Array ( 
    [0] => Array ( 
        [ID] => 1 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [1] => Array ( 
        [ID] => 2 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [2] => Array ( 
        [ID] => 3 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    )
)

我想要相同的结果,但不希望所有列都只有3个。

例:

Array ( 
    [0] => Array ( 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [1] => Array ( 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [2] => Array (  
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    )
)

您可以通过多种方式获得该结果。

使用SQL

由于您似乎正在从数据库中获取数据,因此最好的方法是仅选择所需的列。

如果今天有这个:

SELECT * FROM ...

更改为:

SELECT mot, remplace, Type FROM ...

现在$row将只包含这三个值,您可以使用已有的代码:

while($row = odbc_fetch_array($res)){
    $replace[] = $row;
}

使用PHP

如果出于某种原因而不想限制获取的列,则可以在循环内使用需要使用PHP的列:

while($row = odbc_fetch_array($res)){
    $replace[] = [
         'mot'      => $row['mot'],
         'remplace' => $row['remplace'],
         'Type'     => $row['Type'],
    ];
}

以上两种解决方案都应该为您提供所需的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM