你好,我有一把钥匙=>值数组。键是数字索引,值是关联数组。我想在特定位置添加新元素,并希望提前移动现有元素。我的数组看起来像
Array
(
[0] => Array
(
[States ] => States
[Call Count] => Call Count
[Leads] => Leads
)
[1] => Array
(
[States] => AK
[Call Count] => 0
[Leads] =>
)
[2] => Array
(
[States] => AL
[Call Count] => 0
[Leads] =>
)
[3] => Array
(
[States] => AR
[Call Count] => 0
[Leads] =>
)
)
现在我要插入一个像2=>array('States'=>'ABC','Call Count' =>5, 'Leads'=>2)
这样的索引,并希望索引2变成3和3变为4 .....当我使用时
array_slice($outboundSummaryData, 0, 2, true) +
array('States ' => 'States', 'Call Count' => 'Call Count', 'Leads' => 'Leads') +
array_slice($outboundSummaryData, 2, count($outboundSummaryData) - 2, true);
它会覆盖我的2索引。
当我使用
时array_splice($outboundSummaryData, 2, 0, array('States ' => 'States', 'Call Count' => 'Call Count', 'Leads' => 'Leads'));
它将我的新数组元素作为数组的主索引插入。
任何帮助?
答案 0 :(得分:1)
我使用了array_splice
。并且您的数据结构可以保持不变
$test = array(
array('apple', 'juice'),
array('ice', 'cream'),
array('tea', 'pot'),
);
var_dump($test);
array_splice($test, 2, 0, array(2 => array('coffee', 'milk')));
var_dump($test);
非常简单。添加的数组也需要新索引
答案 1 :(得分:1)
$new_array = array_merge(
array_slice($outboundSummaryData, 0, 2, true),
array(
array(
'States' => 'States',
'Call Count' => 'Call Count',
'Leads' => 'Leads'
)
),
array_slice($outboundSummaryData, 2, count($outboundSummaryData) - 2, true)
);
结果:
Array
(
[0] => 0
[1] => 1
[2] => Array
(
[States] => States
[Call Count] => Call Count
[Leads] => Leads
)
[3] => 2
[4] => 3
)
答案 2 :(得分:0)
嗯..你总是可以使用拼接并附加......
$arr = [0=>"a",1=>"b",2=>"c"];
$splice_value = 2;
$spliced_arr = array_splice($arr, $splice_value);
for($i=$splice_value; $i < count($arr); $i++)
{
$spliced_arr[] = $arr[$i];
}
答案 3 :(得分:0)
如果您不介意从关联数组更改为列表
$outboundSummaryData = array_splice(
array_values($outboundSummaryData),
2, 0, array('States ' => 'States', 'Call Count' => 'Call Count', 'Leads' => 'Leads')
);