Php 使用列表和数组块分割数组以满足动态需求

Php 使用列表和数组块分割数组以满足动态需求,php,Php,我正在使用列表和数组块来分割数组。在我的第一个示例中,我使用list将数组拆分为四个部分 我想把数字从4改为8,让它动态地这样做。而不是在代码中手动创建它。这可能吗?我假设我可以使用下面第二个非工作示例中列出的变量命名 它现在的工作原理: list($inv0, $inv1, $inv2, $inv3) = array_chunk($val['inventory'], ceil(count($val['inventory']) / 4)); 我想要的是设置$I=8,并让它自动动态地分割成8个块

我正在使用列表和数组块来分割数组。在我的第一个示例中,我使用list将数组拆分为四个部分

我想把数字从4改为8,让它动态地这样做。而不是在代码中手动创建它。这可能吗?我假设我可以使用下面第二个非工作示例中列出的变量命名

它现在的工作原理:

list($inv0, $inv1, $inv2, $inv3) = array_chunk($val['inventory'], ceil(count($val['inventory']) / 4));
我想要的是设置$I=8,并让它自动动态地分割成8个块

比如:

$i = 8
list(${inv.0}, ${inv.1}, ${inv.2}, ${inv.3},${inv.4},${inv.5},${inv.6},${inv.7}) = array_chunk($val['inventory'], ceil(count($val['inventory']) / $i));

因此,根据我的需要,我可以将阵列分成X个部分,而不是将其硬编码为4或8等

您可以执行
foreach
来创建所需的变量:

$array = ['a','b','c','d','e','f','g','h'];
$chunk = array_chunk($array,2);

foreach($chunk as $i => $data) {
    ${'inv'.$i} = $data;
}

print_r($inv0);
print_r($inv1);

die();
输出

Array ( [0] => a [1] => b )
Array ( [0] => c [1] => d )

您可以执行
foreach
来创建所需的变量:

$array = ['a','b','c','d','e','f','g','h'];
$chunk = array_chunk($array,2);

foreach($chunk as $i => $data) {
    ${'inv'.$i} = $data;
}

print_r($inv0);
print_r($inv1);

die();
输出

Array ( [0] => a [1] => b )
Array ( [0] => c [1] => d )

有很多方法,但我不认为这是一种可维护的方法,因为您甚至不知道需要处理多少变量。 然而,Felipe Duarte提供了一个有效的答案,这里还有一些:

但我同意上面的答案。
array\u chunk
已经为您提供了您想要的内容:

$chunks = array_chunk($val['inventory'], ceil(count($val['inventory']) / $i));
print_r($chunks); 
// [[0] => ['', ''], [1] => ['','']...]

然后,您可以通过索引访问它(例如
$chunks[0]
$chunks[1]

方法是有的,但我认为这不是一种可维护的方法,因为您甚至不知道需要处理多少变量。 然而,Felipe Duarte提供了一个有效的答案,这里还有一些:

但我同意上面的答案。
array\u chunk
已经为您提供了您想要的内容:

$chunks = array_chunk($val['inventory'], ceil(count($val['inventory']) / $i));
print_r($chunks); 
// [[0] => ['', ''], [1] => ['','']...]

然后,您可以通过索引访问它(例如
$chunks[0]
$chunks[1]

你们都有很好的答案,我忽略了一个事实,我甚至不需要列表,我想我使用它是因为我从我的另一段代码中复制,谢谢你们的建议。你们都有很好的答案,我忽略了我甚至不需要列表的事实,我想我使用它是因为我从我的另一段代码中复制,谢谢您的建议。当您发现自己创建动态变量名时,您应该使用数组。当您发现自己创建动态变量名时,您应该使用数组。