按列名访问MySql数组

时间:2016-09-12 08:05:17

标签: php mysql arrays

我的查询如下:

SELECT * FROM tblName WHERE btn_group_id = 1;

此外,$langs = array(5,7,19)

中的语言数组btn_lang_id也相同
$btn = Array
(
    [0] => Array
        (
            [btn_id] => 1
            [btn_group_id] => 1
            [btn_lang_id] => 5
            [btn_text] => aaa1
        )

    [1] => Array
        (
            [btn_id] => 2
            [btn_group_id] => 1
            [btn_lang_id] => 7
            [btn_text] => bbb2
        )

    [2] => Array
        (
            [btn_id] => 3
            [btn_group_id] => 1
            [btn_lang_id] => 19
            [btn_text] => ccc3
        )
)

我的问题是如何使用echo

将此数组用于btn_lang_id数据
foreach ($langs as $lang){
echo $btn[$lang['lang_id']]['btn_text'];
}

我希望上面3个$btn数组由语言ID访问,而不是由索引0,1,2访问。我有什么办法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用" btn_lang_id"创建数组。使用以下代码作为密钥:

<?php
$langs = array(5,7,19);

$btn = array(
    '0' => array(
            'btn_id' => 1,
            'btn_group_id' => 1,
            'btn_lang_id' => 5,
            'btn_text' => 'aaa1',
        ),
    '1' => array(
            'btn_id' => 2,
            'btn_group_id' => 1,
            'btn_lang_id' => 7,
            'btn_text' => 'bbb2',
        ),
    '2' => array(
            'btn_id' => 3,
            'btn_group_id' => 1,
            'btn_lang_id' => 19,
            'btn_text' => 'ccc3',
        ),
);

$customArr = array();   
foreach($langs as $key=>$value){
  $customArr[$value] = $btn[$key];
}
print_R($customArr);
?>