如何以1比3的比例混合2个阵列?

时间:2018-03-20 10:26:54

标签: php

有一项任务是按比例混合两个阵列" 1to3" 那些。 2个数组。

第一阵列

  

100,200,300,400,500

第二阵列

  

111,112,113,114,115,116,117,118,119,120

必须以新数组退出

  

100,111,112,113,200,114,115,116,300,117,118,119,400,120

我只是想不到......也许是一些功能

我有

$pervo=Array();
$sql = "SELECT * FROM  `zayvki` WHERE `prioretet`='2' AND `status`='1' AND `let`='2' ORDER BY `dataZayvki` ASC";
$result = mysql_query($sql);
while ($itog = mysql_fetch_array($result, MYSQL_ASSOC))
{
    $pervo[]=$itog['id'];
}

$obych=Array();
$sql = "SELECT * FROM  `zayvki` WHERE `prioretet`='0' AND `status`='1' AND `let`='2' ORDER BY `dataZayvki` ASC";
$result = mysql_query($sql);
while ($itog = mysql_fetch_array($result, MYSQL_ASSOC))
{
    $obych[]=$itog['id'];
}

但我不确定它是否正确

1 个答案:

答案 0 :(得分:0)

循环第一个数组并使用array_slice()从第二个数组中获取3个值,然后合并第一个数组中的值和第二个数组中的3个值。

$arr1 = array(100,200,300,400,500);
$arr2 = array(111,112,113,114,115,116,117,118,119,120);
$start = 0;
$len = count($arr2);
$newArr = array();
foreach($arr1 as $val){
    if($start <= $len){
        //$newArr[] = $val;
        $temp = array_merge([$val],array_slice($arr2, $start, 3)) ;
        $newArr = array_merge($newArr, $temp);
    }
    $start +=3;
}
print_r($newArr);

Demo