Php 如何更改数组中键的名称?
我见过许多帖子以各种形式回答这个问题,但不知何故,似乎没有一篇能够完全解决我的问题 PHP 5.5.8+代码点火器 全貌: SQL查询生成部门名称数组Php 如何更改数组中键的名称?,php,arrays,codeigniter,Php,Arrays,Codeigniter,我见过许多帖子以各种形式回答这个问题,但不知何故,似乎没有一篇能够完全解决我的问题 PHP 5.5.8+代码点火器 全貌: SQL查询生成部门名称数组 $strSQL = "SELECT DISTINCT DepartmentName FROM ... $query=$this->db->query($strSQL); $data=$query->result_array(); 我将阵列展平,使其变得非常简单 $flatArray = array_column($data,
$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>";`
…因为当我购买视图时,值选项将是放入SQL搜索以检索进一步信息的确切文本
为了解决这个问题,我已经试过了
- 在SQL语句中执行某些操作,但这不会影响键名称-死胡同
- 然后一篇帖子说要试试这个,但我不明白它是如何改变键名的,它似乎只是改变了元素的值 $arr[$newkey]=$arr[$oldkey]; 未设置($arr[$oldkey])
foreach($PGroups as $key=>$value) $x[$value] = $value;
echo "<td>" . form_dropdown('PurchasingGroup', $x). "</td>";
foreach($PGroups as$key=>$value)$x[$value]=$value;
“回声”。表单_下拉列表('PurchasingGroup',$x)。"";
要替换旧的数组值,必须执行一个非常简单的命令:
$arr = array_combine( $arr, $arr );
print_r( $arr );
将输出:
Array
(
[Dept 1] => Dept 1
[Dept 2] => Dept 2
[Dept 3] => Dept 3
)
试试这个
$tmp = Array
(
[0] => 'Dept 1',
[1] => 'Dept 2',
[2] => 'Dept 3'
);
foreach($tmp as $i => $val)
{
$tmp['Dept '.($i+1)] = $val;
unset($tmp[$i]);
}
$arr[$newkey]=$arr[$oldkey]
使用key$newkey
将$arr[$oldkey]
的内容复制到另一个数组元素。但在您的情况下,它应该是$arr[$arr[$oldkey]]=$arr[$oldkey]
,因为您希望键和值相同。答案本身很简单:$arr=array\u combine($arr,$arr)
但我不明白您是否只想修改$flatary
甚至是原始$data
我想要的最终结果是一个键名和键值完全相同的平面数组。无论如何。@fusion3k-谢谢你。。。这正是我想要的。如何将其标记为“答案”?@Maxcot使用绿色复选框图像
$tmp = Array
(
[0] => 'Dept 1',
[1] => 'Dept 2',
[2] => 'Dept 3'
);
foreach($tmp as $i => $val)
{
$tmp['Dept '.($i+1)] = $val;
unset($tmp[$i]);
}