2017-07-04 3 views
1

Ich habe den folgenden Code:Handle mehrere Parameter in array_map Rückruf

$a=array(15,12,13,25,27,36,18); 
$b=array(1,1,1,1,1,1,1);//is it possible to pass only one value=1, instead of array containing seven 1's 
// expectation: $b = array(1); or $b= 1; 
//instead of $b=array(1,1,1,1,1,1,1); 

function array_add($p,$q){ 
    return($p+$q); 
} 
$c=array_map("array_add",$a,$b); 

Ich möchte so etwas wie:

$a=array(15,12,13,25,27,36,18); 
$b=array(1); 

function array_add($p,$q){ 
    return($p+$q); 
} 
$c=array_map("array_add",$a,$b); 

Jede bessere Lösung dank.

+0

Was versuchst du zu tun? Bitte geben Sie ein Beispiel mit erwartetem Verhalten an. – msfoster

+0

$ a = Array (15,12,13,25,27,36,18); $ b = Anordnung (1,1,1,1,1,1,1); // Ich möchte einen Wert für alle Indizes anstelle von Array verwenden, d. H. $ B = 1; Funktion array_add ($ p, $ q) { Rückkehr ($ p + $ q); } $ c = array_map ("array_add", $ a, $ b); – waqas

Antwort

0

Sie können array_map wie diese, und übergeben Sie die $ param2 mit use()

array_map(function($v) use($param2){ 
    //do something 
}, $input); 
0

Werfen Sie einen Blick auf array_walk

von Ihrem Beispiel wäre es:

function array_add(&$item, $key, $toAdd) { 
    $item+=$toAdd; 
} 
array_walk($a, 'array_add', 1); 

I würde auch empfehlen, dass Sie einen Blick auf die Antwort mit der Schließung (use)