Php 使用列表和数组块分割数组以满足动态需求
我正在使用列表和数组块来分割数组。在我的第一个示例中,我使用list将数组拆分为四个部分 我想把数字从4改为8,让它动态地这样做。而不是在代码中手动创建它。这可能吗?我假设我可以使用下面第二个非工作示例中列出的变量命名 它现在的工作原理:Php 使用列表和数组块分割数组以满足动态需求,php,Php,我正在使用列表和数组块来分割数组。在我的第一个示例中,我使用list将数组拆分为四个部分 我想把数字从4改为8,让它动态地这样做。而不是在代码中手动创建它。这可能吗?我假设我可以使用下面第二个非工作示例中列出的变量命名 它现在的工作原理: list($inv0, $inv1, $inv2, $inv3) = array_chunk($val['inventory'], ceil(count($val['inventory']) / 4)); 我想要的是设置$I=8,并让它自动动态地分割成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]
) 你们都有很好的答案,我忽略了一个事实,我甚至不需要列表,我想我使用它是因为我从我的另一段代码中复制,谢谢你们的建议。你们都有很好的答案,我忽略了我甚至不需要列表的事实,我想我使用它是因为我从我的另一段代码中复制,谢谢您的建议。当您发现自己创建动态变量名时,您应该使用数组。当您发现自己创建动态变量名时,您应该使用数组。