我在每个数组中都有array_chunk
个10个密钥循环遍历。我想删除密钥[10] =>从每个循环的数组,所以我将剩下9个键。到目前为止我所拥有的。
$page = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s");
$number_of_pages_to_copy = 5;
$x = 1;
while($x <= $number_of_pages_to_copy) {
$sum = array_chunk($page, 11);
unset($sum['10']);
print_r($sum);
$x++;
}
当前输出:
Array ( [0] => Array ( [1] => "a" [2] => "b" [3] => "c" [4] => "d" [5] => "e" [6] => "f" [7] => "g" [8] => "h" [9] => "i" [10]=> "j" )
[1]=> Array ( [1] => "a" [2] => "b" [3] => "c" [4] => "d" [5] => "e" [6] => "f" [7] => "g" [8] => "h" [9] => "i" [10]=> "j" )
期望的输出:
Array ( [0] => Array ( [1] => "a" [2] => "b" [3] => "c" [4] => "d" [5] => "e" [6] => "f" [7] => "g" [8] => "h" [9] => "i" )
[1] => Array ( [0] => Array ( [1] => "a" [2] => "b" [3] => "c" [4] => "d" [5] => "e" [6] => "f" [7] => "g" [8] => "h" [9] => "i" )
什么都没发生,未设置似乎没有用。
答案 0 :(得分:0)
你的$ sum是一个数组数组,所以你必须使用另一个索引或foreach。
array_slice($sum[0],0,10);
或
foreach($sum as &$v)
{
unset($v[10]);
}
为你取消设置数组的最后一个索引,所以你不需要重新索引数组,如果不设置则不使用array_values。
这是一个演示:
<?php
$page = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s");
$arrays= array_chunk($page, 11);
foreach($arrays as &$array)
{
unset($array[10]);
}
print_r($arrays);
输出:
ei@localhost:~$ php test.php
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
[6] => g
[7] => h
[8] => i
[9] => j
)
[1] => Array
(
[0] => l
[1] => m
[2] => n
[3] => o
[4] => p
[5] => q
[6] => r
[7] => s
)
)
或
<?php
$page = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s");
$arrays= array_chunk($page, 11);
$arrays = array_map(function($v){return array_slice($v, 0, 10);}, $arrays);
print_r($arrays);
,这将获得相同的输出。