Ответ 1
Чтобы получить часть массива, вы можете использовать array_slice:
$input = array("a", "b", "c", "d", "e");
$len = count($input);
$firsthalf = array_slice($input, 0, $len / 2);
$secondhalf = array_slice($input, $len / 2);
Скажем, у меня есть массив
$array
Может ли кто-нибудь дать мне пример того, как использовать цикл foreach и печатать два списка после того, как начальная сумма массива была подсчитана и разделена на две части, а оставшиеся остатки остались во втором списке?
Итак, вместо того, чтобы просто использовать foreach для создания одного длинного списка, он будет создавать два списка? как это...
а затем второй список будет продолжать печатать в порядке
Чтобы получить часть массива, вы можете использовать array_slice:
$input = array("a", "b", "c", "d", "e");
$len = count($input);
$firsthalf = array_slice($input, 0, $len / 2);
$secondhalf = array_slice($input, $len / 2);
http://php.net/manual/en/function.array-slice.php
Чтобы разрезать массив на половину, используйте floor (count ($ array)/2), чтобы узнать ваше смещение.
Используйте array_chunk
, чтобы разбить массив на несколько подмассивов, а затем перебрать их через.
Чтобы узнать, насколько большими должны быть фрагменты для разделения массива пополам, используйте ceil(count($array) / 2)
.
<?php
$input_array = array('a', 'b', 'c', 'd', 'e', 'f');
$arrays = array_chunk($input_array, 3);
foreach ($arrays as $array_num => $array) {
echo "Array $array_num:\n";
foreach ($array as $item_num => $item) {
echo " Item $item_num: $item\n";
}
}
Выход
Array 0:
Item 0: a
Item 1: b
Item 2: c
Array 1:
Item 0: d
Item 1: e
Item 2: f
$limit=count($array);
$first_limit=$limit/2;
for($i=0;$i<$first; $i++)
{
echo $array[$i];
}
foreach ($i=$first; $i< $limit; $i++)
{
echo $array[$i];
}
Используя цикл foreach, вы можете сделать это:
$myarray = array("a", "b", "c", "d", "e", "f", "g");
$array1 = array();
$array2 = array();
$i = 1;
foreach ($myarray as $value) {
if ($i <= count($myarray) / 2) {
$array1[] = $value;
} else {
$array2[] = $value;
}
$i++;
}
Но еще проще использовать array_splice
$myarray = array("a", "b", "c", "d", "e", "f", "g");
$array1 = array_splice($myarray, 0, floor(count($myarray)/2));
$array2 = $myarray;