Coding

Array Mixin

peas 610184 1920

Zwei Arrays ( $a1 und $a2 ) mit einer unterschiedlichen Anzahl von Elementen sollen zu einem Array werden. Allerdings soll nur jedes xte($mixrel) Element aus dem zweiten Array sein, die anderen aus dem ersten, und optional ($first = true) soll das zusammengeführte Array mit einem Element aus dem zweiten beginnen können. Sind die Elemente eines der beteiligten Arrays aufgebraucht, kommen ab diesem Punkt nur noch Elemente des anderen.

function array_mixin($a1,$a2,$mixrel,$first=false) {
	if ($mixrel==0) return $a1; elseif ($mixrel==1) return array_merge($a2,$a1);
		if (!is_array($a1) || !is_array($a2) || count($a2)==0) return $a1;
    if (count($a1)==0) return $a2;
    
	$mixrel=floor($mixrel+.5)-1;

    $result=array();
    if ( $first ) array_push($result,array_shift($a2));
    for($i=1;count($a1);$i++)
	  { array_push($result,array_shift($a1));
	    if (count($a2)==0) break;
	    if($i%$mixrel==0) array_push($result,array_shift($a2));
	  }
    
	return array_merge($result,$a2,$a1);
}

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.