Как я могу взять массив, разделить его на два и создать два списка?

Скажем, у меня есть массив

$array 

Может ли кто-нибудь дать мне пример того, как использовать цикл foreach и печатать два списка после того, как начальная сумма массива была подсчитана и разделена на две части, а остальные остались во втором списке?

Поэтому вместо того, чтобы просто использовать foreach для создания одного длинного списка, он будет создавать два списка? вот так…

  1. Значение 1
  2. Значение 2
  3. Значение 3

а затем второй список будет продолжать печатать в порядке

  1. Значение 4
  2. Значение 5
  3. Значение 6

Solutions Collecting From Web of "Как я могу взять массив, разделить его на два и создать два списка?"

Чтобы получить часть массива, вы можете использовать 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 чтобы разбить массив на несколько под-массивов, а затем 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;