Я хочу объединить 3 массива.
Мой первый:
Array ( [0] => Leaves-19 [1] => Shifts-1 [2] => Shifts-1 [3] => Shifts-1 [4] => Shifts-1 [5] => Shifts-1 [6] => Leaves-19 [7] => Leaves-19 [8] => Shifts-1 [9] => Shifts-1 [10] => Shifts-1 [11] => Shifts-1 [12] => Shifts-1 [13] => Leaves-19 [14] => Leaves-19 [15] => Shifts-1 [16] => Shifts-1 [17] => Shifts-1 [18] => Shifts-1 [19] => Shifts-1 [20] => Leaves-19 [21] => Leaves-19 [22] => Shifts-1 [23] => Shifts-1 [24] => Shifts-1 [25] => Shifts-1 [26] => Shifts-1 [27] => Leaves-19 [28] => Leaves-19 [29] => Shifts-1 [30] => Shifts-1 [31] => Shifts-1 [32] => Shifts-1 [33] => Shifts-1 [34] => Leaves-19 [35] => Leaves-19 [36] => Shifts-1 [37] => Shifts-1 [38] => Shifts-1 [39] => Shifts-1 [40] => Shifts-1 [41] => Leaves-19 )
Моя вторая:
Array ( [0] => 2013-04-28 [1] => 2013-04-29 [2] => 2013-04-30 [3] => 2013-05-01 [4] => 2013-05-02 [5] => 2013-05-03 [6] => 2013-05-04 )
Третий:
Array ( [0] => 13 [1] => 10 [2] => 12 [3] => 9 [4] => 14 [5] => 11 )
Я хочу:
Танск за помощью.
Что я пробовал:
echo print_r($_POST['dayType'])."<hr />"; echo print_r($_POST['dayArr'])."<hr />"; echo print_r($_POST['userArr'])."<hr />"; //echo count($_POST['dayType'])." --- ".count($_POST['dayArr'])." --- ".count($_POST['userArr']); // 2013-05-04 / 13 / Leaves-19 $loopNb1 = count($_POST['dayType']); $loopNb2 = count($_POST['dayType'])/7; for($a=0; $a<$loopNb1; $a++) { echo $_POST['dayType'][$a]."<br />"; } echo "<hr />"; for($b=0; $b<$loopNb2; $b++) { echo $_POST['userArr'][1]."<br />"; }
Первый / второй / третий массивы – это то же самое, что вы вставили (тот же порядок).
$datesCount = count( $secondArray ); $firstArrayLength = count( $firstArray ); $thirdArrayLength = count( $thirdArray ); for( $i=0 ; $i < $thirdArrayLength ; $i++ ) { $currentThirdArrayValue = $thirdArray[$i]; for( $inner=0, $firstArrayIndex=0 ; $inner < $datesCount ; $inner++, $firstArrayIndex++ ) { if( $firstArrayIndex == $firstArrayLength ) $firstArrayIndex = 0; echo "{$secondArray[$inner]} / {$currentThirdArrayValue} / {$firstArray[$firstArrayIndex]}<br/>\n"; } }
Дам тебе:
2013-04-28 / 13 / Leaves-19<br/> 2013-04-29 / 13 / Shifts-1<br/> 2013-04-30 / 13 / Shifts-1<br/> 2013-05-01 / 13 / Shifts-1<br/> 2013-05-02 / 13 / Shifts-1<br/> 2013-05-03 / 13 / Shifts-1<br/> 2013-05-04 / 13 / Leaves-19<br/> 2013-04-28 / 10 / Leaves-19<br/> 2013-04-29 / 10 / Shifts-1<br/> 2013-04-30 / 10 / Shifts-1<br/> 2013-05-01 / 10 / Shifts-1<br/> 2013-05-02 / 10 / Shifts-1<br/> 2013-05-03 / 10 / Shifts-1<br/> 2013-05-04 / 10 / Leaves-19<br/>
и т.д … заканчивается:
2013-05-01 / 11 / Shifts-1<br/> 2013-05-02 / 11 / Shifts-1<br/> 2013-05-03 / 11 / Shifts-1<br/> 2013-05-04 / 11 / Leaves-19<br/>
Получите идею –
//Your array $a = array(1, 2, 3, 4, 5, 6,7,8); $b = array("one", "two", "three", "four", "five",'123', 'asdfsadf'); $c = array("uno", "dos", "tres", "cuatro", "cinco", 'jina'); function myFunc($first, $second, $third) { if (!empty($first) && !empty($second) && !empty($second)) { return $first . '/' . $second . '/'. $third; } } // get the lowest size of array $minimumSize = min(count($a), count($b), count($c)); //modify array in terms of lowest size $firstArray = array_slice($a, 0, $minimumSize); $secondArray = array_slice($b, 0, $minimumSize); $thirdArray = array_slice($c, 0, $minimumSize); $d = array_map('myFunc', $firstArray, $secondArray, $thirdArray);
Если вам нужны все комбинации из этих трех массивов (назовите их $ first, $ second, $ third), вы можете сделать что-то вроде этого:
foreach($first as $a){ foreach($second as $b){ foreach($third as $c{ //do whatever you want with $a,$b,$c echo "$a/$b/$c"; } } }