我需要将现有数组附加到新数组中 我的代码:
foreach($hostsArray as $key=>$value)
{
$newarr = array('column1'=>$key,'column2'=>$value);
print_r($newarr);
}
如果我在for循环中print_r()
获取数组Array ( [column1] => num_services_crit [column2] => 2 ) Array ( [column1] => num_services_hard_crit [column2] => 2 )
我需要将所有上述数组值推送到一个新数组中,我需要两个键值对
答案 0 :(得分:1)
更改以下行:
$newarr = array('column1'=>$key,'column2'=>$value);
要:
$newarr[] = array('column1'=>$key,'column2'=>$value);
// ^ these empty square braces mean "append"
然后,您可以将print_r()
移到循环外部。
答案 1 :(得分:1)
魔术:
$newarr = array_map(null,array_keys($hostsArray),array_values($hostsArray));
文档:
array_map
(特别是如果你有一个NULL回调会发生什么)array_keys
array_values
如果明确需要“column1”和“column2”作为键,请尝试:
$newarr = array_map(function($a,$b) {return array("column1"=>$a,"column2"=>$b);},
array_keys($hostsArray),array_values($hostsArray));
答案 2 :(得分:0)
考虑array_merge函数:http://php.net/manual/de/function.array-merge.php
答案 3 :(得分:0)
你可以使用array_merge()函数合并两个数组,如PHP手册here
所示答案 4 :(得分:0)
试试这个:
$newarr = array();
foreach($hostsArray as $key=>$value){
array_push($newarr,array('column1'=>$key,'column2'=>$value));
}
echo "<pre>";
print_r($newarr);