2016-03-19 4 views
1

Dies ist, was mein Arraymehrdimensionale Array Umwandeln in eindimensional für codeigniter einfügen

array (size=5) 
    0 => 
array (size=2) 
    'key' => string 'PresentAddressDisrict' (length=21) 
    'value' => string '1' (length=1) 
1 => 
array (size=2) 
    'key' => string 'ParmanentAddressDistrict' (length=24) 
    'value' => string '2' (length=1) 
2 => 
array (size=2) 
    'key' => string 'Board' (length=5) 
    'value' => string '1' (length=1) 
3 => 
array (size=2) 
    'key' => string 'FieldChoice' (length=11) 
    'value' => string '1' (length=1) 
4 => 
array (size=2) 
    'key' => string 'Gender' (length=6) 
    'value' => string '1' (length=1) 

Versuchte mehrere Lösungen sucht wie:

  1. die Array-
 
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($a)); 
foreach($it as $v) { 
    echo $v, " "; 
} 
Abflachen
  1. mit Schleifen:

foreach ($a as $v1) { 
    foreach ($v1 as $v2) { 
     echo "$v2\n"; 
    } 
} 

aber nicht das gewünschte Ergebnis zu erzielen und trotzdem den Weg zu finden.

die Notwendigkeit ist:

array('PresentAddressDisrict' => 1, 'ParmanentAddressDistrict' => 2, 'Board' => 1, 'FieldChoice' => 1, 'Gender' => 1) 

mir bitte helfen.

Antwort

2

Es kann einige glatte Weise array_map oder eine andere Funktion sein, aber ich würde nähern dies einfach:

// create a new empty array to store values in 
$insert = array(); 

// iterate over your array of arrays 
foreach($my_array AS $values) { 
    // at this point, $values is something like: 
    // array('key' => 'Gender', 'value' => '1') 
    $insert[$values['key']] = $values['value']; 
} 

var_dump($insert); 
+0

Ich glaube, Sie zuerst, ich meine Antwort entfernen und Abstimmung bis – Naumov

0

einfach eine Array-Funktionen Ansatz zu schaffen, die genannten cale_b.

$values = array_map(function($item) { 
    return $item['value']; 
}, $array); 

$keys = array_map(function($item) { 
    return $item['key']; 
}, $array); 

$array = array_combine($keys, $values); 
+1

Hallo an alle, ich danke herzlich allen für die Beantwortung, ich angewendet cale_b es für mich beantworten gearbeitet. –

Verwandte Themen