PHP Kombination von zwei multi-dimensional arrays

Ich versuche, mit array_combine kombinieren Sie zwei multi-dimensionale arrays, aber irgendwie machen es nicht richtig.

Hier ist array1:

Array(
    [Nov 18, 2011] => Array(
        [C] => 107705.5792
        [I] => 44561.52
    )
    [Nov 22, 2011] => Array(
        [C] => -8992.8352
    )
)

und hier ist array2:

Array(
    [Nov 18, 2011] => Array(
        [C] => 3
        [I] => 1
    )
    [Nov 22, 2011] => Array(
        [C] => 2
    )
)

Hier ist mein Versuch an array_combine, die nicht arbeiten:

$array1 = ($arr1);
$array2 = ($arr2);
$result = array_combine($arr1, $arr2);
echo '<pre>';
print_r($result);
echo '</pre>';

Was mache ich falsch? Dies ist das Ergebnis, das ich Suche:

Array(
    [Nov 18, 2011] => Array(
        [3] => 107705.5792
        [1] => 44561.52
    )
    [Nov 22, 2011] => Array(
        [2] => -8992.8352
    )
)

Vielen Dank für Ihre Hilfe.

  • BEARBEITEN -

Habe ich festgestellt, dass wenn ich stattdessen verwenden array_merge_recursive, das ist mein Ergebnis ich bekomme. Nicht das, was ich gesucht hatte, aber in der Nähe:

Array(
    [Nov 18, 2011] => Array(
        [C] => Array(
            [0] => 3
            [1] => 107705.5792
        )
        [I] => Array(
            [0] => 1
            [1] => 44561.52
        )
    )
    [Nov 22, 2011] => Array(
        [C] => Array(
            [0] => 2
            [1] => -8992.8352
        )
    )
)
  • WEITER BEARBEITEN -

Hier ist der Weg, dass ich versucht habe zu implementieren Sie eine der unten aufgeführten Vorschläge, aber dieser ist nicht für mich arbeiten. Was ist falsch?:

function cust_array_merge(array &$array1, array $array2){
    //loop through main array
    foreach ($array1 as $key => $val) {
        //check if $array2 has the same index
        if (array_key_exists($key, $array2)) {
            //reset $array1's indexes to $array2's values
            foreach ($array2[$key] as $subKey => $subVal) {
                if (array_key_exists($subKey, $array1[$key])) {
                    $tempVal = $array1[$key][$subKey];
                    unset($array1[$key][$subKey]);
                    $array1[$key][$subVal] = $tempVal;}}}}}

$merged = cust_array_merge($arr_cats_per_bill_date, $arr_cvat);
echo '<pre>';
    print_r($merged);
echo '</pre>';
  • Sind Sie wollen, um wichtige Referenzen oder machen Sie sich nicht sorgen, wenn es zu 0 1 2? Sie können nicht zwei Tasten "C" oder "I" oder jeder andere Wert im array.
  • Warum tun sich buchstäblich ALLE Ihre Fragen haben den exakt gleichen Inhalt und arrays? Machen wir deine Hausaufgaben machen oder etwas für die Schule? Dies ist buchstäblich die Dritte oder vierte Frage von dir, die ich gesehen habe in der letzten Woche oder zwei, das ist fast genau die gleiche wie die Vorherige..
  • Nein, ich nicht wollen, halten Sie die Taste Referenzen.
  • meine Fragen haben den gleichen Inhalt und arrays, da bin ich immer noch versuchen, herauszufinden, die gleiche Tatsache-situation. Diese nicht Hausaufgaben für die Schule. Ich versuche einfach nur, um zu erfahren, wie die Arbeit mit mehrdimensionalen arrays richtig.
  • Gotcha. Nur damit, dass es nicht falsch in keiner Weise lol. Danke für die Aufklärung!
  • Es ist ein bisschen ungewöhnlich, numerischen Tasten in einem array, die nicht in Ordnung sind. Sind Sie sicher, dies ist die beste Daten-Struktur, die Sie brauchen, um Ihre problem?

InformationsquelleAutor DanielAttard | 2011-12-05
Schreibe einen Kommentar