codeigniter 如何更改数组中键的名称?

vmpqdwk3  于 2023-02-27  发布在  其他
关注(0)|答案(3)|浏览(112)

我看过很多帖子以各种形式回答这个问题,但不知何故,似乎没有一个能完全解决我的问题。
PHP 5.5.8 +代码触发器
完整画面:
SQL查询生成一个部门名称数组。

$strSQL = "SELECT DISTINCT DepartmentName FROM ...
$query=$this->db->query($strSQL);
$data=$query->result_array();

我把数组变平,使它变得非常简单。

$flatArray = array_column($data, 'DepartmentName');
array_unshift($flatArray, "");
return $flatArray;

然后返回控制器在窗体上创建下拉框。
但是,该数组的格式为:

[PGroups] => Array
                    (
                        [0] => Dept 1
                        [1] => Dept 2
                        [2] => Dept 3
                         .....

在我的(基于CodeIgniter的)视图中,我有以下内容:

`echo "<td>" .  form_dropdown('PurchasingGroup', $PGroups). "</td>";`

这将创建一个HTML下拉列表,其中的选项是数值,而不是部门名称的实际文字。
我试图得到这样的结果:

["Dept 1"] => Dept 1
["Dept 2"] => Dept 2
["Dept 3"] => Dept 3
.....

..因为这样当我购买视图时,值选项将是放入SQL搜索以检索进一步信息的确切文本。
为了解决这个问题我试过

  • 在SQL语句中执行一些操作,但这不会影响键名--死胡同
  • 然后一个帖子说试试这个,但我不明白这是如何改变 key name的,它似乎只是改变了元素的值。

$arr[$新密钥] = $arr[$旧密钥];未设置($arr[$oldkey]);
它就在我眼前,但我却在原地打转。帮帮忙?

z9ju0rcb

z9ju0rcb1#

要替换旧的数组值,您必须执行一个非常简单的命令:

$arr = array_combine( $arr, $arr );
print_r( $arr );

将输出:

Array
(
    [Dept 1] => Dept 1
    [Dept 2] => Dept 2
    [Dept 3] => Dept 3
)
kr98yfug

kr98yfug2#

试试这个:

foreach($PGroups as $key=>$value) $x[$value] = $value;
echo "<td>" .  form_dropdown('PurchasingGroup', $x). "</td>";
euoag5mw

euoag5mw3#

试试这个。

$tmp = Array
                (
                    [0] => 'Dept 1',
                    [1] => 'Dept 2',
                    [2] => 'Dept 3'
                );
            foreach($tmp as $i => $val)
            {
                $tmp['Dept '.($i+1)] = $val;
                unset($tmp[$i]);
            }

相关问题