Php 将字段推送到多维关联数组的每个子数组的末尾
我有一个PHP多维关联数组,其结构如下:Php 将字段推送到多维关联数组的每个子数组的末尾,php,arrays,codeigniter,multidimensional-array,Php,Arrays,Codeigniter,Multidimensional Array,我有一个PHP多维关联数组,其结构如下: Array ( [0] => Array ( [serverid] => 1 [ip] => localhost [name] => Server1 ) [1] => Array ( [serverid] => 2 [ip] => localhost [name] => Server2
Array
(
[0] => Array
(
[serverid] => 1
[ip] => localhost
[name] => Server1
)
[1] => Array
(
[serverid] => 2
[ip] => localhost
[name] => Server2
)
[2] => Array
(
[serverid] => 3
[ip] => localhost
[name] => Server3
)
现在,我需要在每个子数组的末尾推送这个新字段,并使用以下值:
['page_url'] = base_url('/server/id/') . $server['serverid'];
其中,$server['serverid']
是相对于每个子阵列的serverid字段
我尝试过这个循环,但似乎不起作用:
$result = $query->result_array();
foreach($result as $server) {
$server['page_url'] = base_url('/server/id/') . $server['id'];
}
如果您有任何建议,我们将不胜感激。这将创建子阵列的临时副本,您将对其进行更改,然后在下一次迭代中将其丢弃:
foreach ($result as $server) {
$server['page_url'] = base_url('/server/id/') . $server['id'];
}
您想更改原始数组。大概是这样的:
foreach (array_keys($result) as $index) {
$result[$index]['page_url'] = base_url('/server/id/') . $result[$index]['id'];
}
如果你知道你没有弄乱$result
中的索引,你也可以这样做:
for ($index = 0; $index < count($result); $index++) {
for($index=0;$index
这将创建子阵列的临时副本,您将对其进行更改,然后在下一次迭代中丢弃:
foreach ($result as $server) {
$server['page_url'] = base_url('/server/id/') . $server['id'];
}
您要更改原始数组。类似于以下内容:
foreach (array_keys($result) as $index) {
$result[$index]['page_url'] = base_url('/server/id/') . $result[$index]['id'];
}
如果你知道你没有弄乱$result
中的索引,你也可以这样做:
for ($index = 0; $index < count($result); $index++) {
for($index=0;$index
如果要在通过foreach中的数组进行迭代时修改子数组,则必须使用&
将变量作为引用传递
如果您将代码更改为下面的代码,它应该可以工作,因为您将更改原始数组项而不是创建的副本
foreach($result as &$server) {
$server['page_url'] = base_url('/server/id/') . $server['id'];
}
如果您想在通过foreach中的数组进行迭代时修改子数组,则必须使用
&
将变量作为引用传递
如果您将代码更改为下面的代码,它应该可以工作,因为您将更改原始数组项而不是创建的副本
foreach($result as &$server) {
$server['page_url'] = base_url('/server/id/') . $server['id'];
}
在foreach add&beforövarname foreach($result as&$server)中修改{在foreach add&beforövarname foreach($result as&$server)中修改{很好的解决方案,我没有考虑到我在复制值而不是修改原始数组。很好的解决方案,我没有考虑到我在复制值而不是修改原始数组。