Php 在数组的x位置插入数组
我们在Php 在数组的x位置插入数组,php,arrays,Php,Arrays,我们在$r中有一个范围数组: $r = array( array(3,5), array(36,54) ); 我们希望在我们的范围中添加一个新范围: $n = array(11, 19); 我们还希望对$r进行排序,因此新范围应该插入到1位置。如果我们使用array\u-splice,结果将添加11和19作为两个新元素: array_splice($r, 1, 0, $n); // output: array( array(3,5), 11, 19, array(36,54) ) 我们如何
$r
中有一个范围数组:
$r = array( array(3,5), array(36,54) );
我们希望在我们的范围中添加一个新范围:
$n = array(11, 19);
我们还希望对$r
进行排序,因此新范围应该插入到1
位置。如果我们使用array\u-splice
,结果将添加11
和19
作为两个新元素:
array_splice($r, 1, 0, $n);
// output: array( array(3,5), 11, 19, array(36,54) )
我们如何才能获得如下所示的预期结果
// output: array( array(3,5), array(11,19), array(36,54) )
您可以在另一个数组中使用新范围包装数组:
array_splice($r, 1, 0, array($n));
输出:
array(3) {
[0]=>
array(2) {
[0]=>
int(3)
[1]=>
int(5)
}
[1]=>
array(2) {
[0]=>
int(11)
[1]=>
int(19)
}
[2]=>
array(2) {
[0]=>
int(36)
[1]=>
int(54)
}
您可以在另一个数组中使用新范围包装数组:
array_splice($r, 1, 0, array($n));
输出:
array(3) {
[0]=>
array(2) {
[0]=>
int(3)
[1]=>
int(5)
}
[1]=>
array(2) {
[0]=>
int(11)
[1]=>
int(19)
}
[2]=>
array(2) {
[0]=>
int(36)
[1]=>
int(54)
}
这可能比你想象的更容易。阅读时,您会看到
$replacement
参数是一个数组,应该包含应该插入数组中的所有元素
考虑下面的代码:
array_splice($r, 1, 0, array(11, 19));
这不会将数组(11,19)
作为一个元素插入数组,而是将每个11
和19
作为两个元素插入数组
您可能想做的是:
array_splice($r, 1, 0, array(array(11, 19)));
或者,在你的具体例子中:
array_splice($r, 1, 0, array($n));
或者,您可以简单地追加数组,然后对其进行完全重新排序(这可能效率不高,但对于小数据集来说更容易):
这可能比你想象的更容易。阅读时,您会看到
$replacement
参数是一个数组,应该包含应该插入数组中的所有元素
考虑下面的代码:
array_splice($r, 1, 0, array(11, 19));
这不会将数组(11,19)
作为一个元素插入数组,而是将每个11
和19
作为两个元素插入数组
您可能想做的是:
array_splice($r, 1, 0, array(array(11, 19)));
或者,在你的具体例子中:
array_splice($r, 1, 0, array($n));
或者,您可以简单地追加数组,然后对其进行完全重新排序(这可能效率不高,但对于小数据集来说更容易):
如果只是希望它们按照范围中第一个值的顺序排列,那么可以执行以下操作
$r = array( array(3,5), array(36,54));
$r[] = array(11,19);
print_r($r);
sort($r);
print_r($r);
结果:
未排序:
Array
(
[0] => Array
(
[0] => 3
[1] => 5
)
[1] => Array
(
[0] => 36
[1] => 54
)
[2] => Array
(
[0] => 11
[1] => 19
)
)
分类:
Array
(
[0] => Array
(
[0] => 3
[1] => 5
)
[1] => Array
(
[0] => 11
[1] => 19
)
[2] => Array
(
[0] => 36
[1] => 54
)
)
如果您只是希望它们按照范围内第一个值的顺序排列,那么您可以执行以下操作
$r = array( array(3,5), array(36,54));
$r[] = array(11,19);
print_r($r);
sort($r);
print_r($r);
结果:
未排序:
Array
(
[0] => Array
(
[0] => 3
[1] => 5
)
[1] => Array
(
[0] => 36
[1] => 54
)
[2] => Array
(
[0] => 11
[1] => 19
)
)
分类:
Array
(
[0] => Array
(
[0] => 3
[1] => 5
)
[1] => Array
(
[0] => 11
[1] => 19
)
[2] => Array
(
[0] => 36
[1] => 54
)
)
您是否尝试将另一个维度添加到$n$n=array(array(11,19))和拼接?您是否尝试过在$n中添加另一个维度$n=array(array(11,19)),然后拼接它?