我想合并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 )
我想:
Thansk寻求帮助。
我尝试了什么:
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 />";
}
答案 0 :(得分:1)
了解主意 -
//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);
答案 1 :(得分:1)
第一个/第二个/第三个数组与您粘贴的数组相同(相同顺序)。
$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/>
答案 2 :(得分:1)
如果你想要这3个阵列的所有组合(称为$ 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";
}
}
}