我目前有一个包含数组数组的数组:
array(9) {
["enabled"]=>
array(4) {
["title"]=>
string(14) "Enable/Disable"
["type"]=>
string(8) "checkbox"
["label"]=>
string(25) "Enable"
["default"]=>
string(3) "yes"
}
["title"]=>
array(5) {
["title"]=>
string(5) "Title"
["type"]=>
string(4) "text"
["description"]=>
string(60) "This controls the title which the user sees during checkout."
["default"]=>
string(18) "Retail Finance"
["desc_tip"]=>
bool(true)
}
此数组称为$test
。现在你可以在这个数组中看到,在索引0处有一个名为"enabled"
的数组,在索引1处有一个名为"title"
的数组。我想在索引0和1之间拼接另一个关联数组。包括以下内容:
'enable_finance_calculator' => array(
'title' => __( 'Enable Calculator', 'woocommerce' ),
'type' => 'checkbox',
'label' => __( 'Enable Finance Calculator', 'woocommerce' ),
'default' => 'yes'
),
通常在执行此操作时我会使用array_splice()
,但这不会处理关联数组。这里最好的选择是什么?
答案 0 :(得分:2)
参与的种类,但你可以切片和合并:
$test = array_merge(
array_slice($test, 0, $pos=array_search('enabled', array_keys($test), true)+1, true),
$newarray,
array_slice($test, $pos, NULL, true)
);
答案 1 :(得分:1)
你应该能够做到这一点(没有测试过):
// Get first item off from index 0
$tempData = array_shift($data);
// Add new array $newData at index 0
array_unshift($data, $newData);
// Add old data again at index 0, rest of items should get an incremented index, so $newData is at 1 and ['title'] is at 2
array_unshift($data, $tempData);