2009-06-22 3 views
0

Ich habe 2 separaten Arrays, ist eine nur die Ide, der andere ist der Prozentsatz Ids ist:Wie kann ich Schlüssel in einem Array paaren?

Array 
(
    [0] => 3 
    [1] => 4 
    [2] => 5 
    [3] => 6 
    [4] => 7 
} 

Prozent Array:

Array 
(
    [0] => 28 
    [1] => 39 
    [2] => 17 
    [3] => 28 
    [4] => 23 

So wäre es wie am Ende:

Array 
    (
     [0] => Array 

      (
       [id] => 3 
       [percent] => 28 
      ) 

und so weiter für jedes der Paare?

Antwort

1

einfach durch die Elemente des Arrays (0..4) durchlaufen und Elemente zu Ihrem neuen Array hinzufügen.

(Ich bin nicht einschließlich Beispielcode, weil dies wie eine Hausaufgabe klingt!)

+0

Hm nicht über diese Hausaufgaben Teil glaubte;) –

0

Ich glaube nicht, dass es irgendeine Art und Weise builtin ist, das zu tun, so dass Sie eine Schleife verwenden müssen wie ..

$pairs = array(); 
for($i = 0, $len = count($ids); $i < $len; $i++) { 
    $pair = array(
     'id' => $ids[$i], 
     'percent' => $percents[$i] 
    ); 

    $pairs[] = $pair; 
} 
+0

warum nicht nur ‚for ($ i = 0; $ i

+0

Es ist so, dass Sie count() nicht bei jeder Iteration ausführen und möglicherweise etwas Zeit sparen. Ich denke nicht, dass es die Dinge mit kleineren Arrays beeinflusst, aber ich bin irgendwie gewohnt, für solche Loops zu schreiben –

+0

wow. Vielen Dank! habe gerade ein Benchmarking durchgeführt und es gibt einen signifikanten Unterschied zu größeren Arrays. : D –

0

AFAIK Sie, dass in trivialer Weise nicht tun können, aber können Sie etwas tun:

array_combine($ids, $percentages); 
+0

Ich würde diese Wahrscheinlichkeit annehmen, $ ids sind einzigartig. – gradbot

0

eine gute Idee zu verwenden, um zwei Schleifen sein könnte für den Fall zu erklären, wo die Arrays haben nicht gleichberechtigtes Mitglied zählt wie folgt aus:

$ids = array(...); 
$percent = array(...); 
$combined = array(); 
foreach($ids as $index => $id) { 
    $combined[$index]['id'] = $id; 
} 
foreach($percent as $index => $percentage) { 
    $combined[$index]['percent'] = $percentage; 
} 
+0

Warum Schleife zweimal, wenn die Indizes gleich sind? –

+0

@phphil - Wie oben erwähnt, falls die Arrays nicht die gleiche Anzahl haben. – zacharydanger

Verwandte Themen