2010-09-30 15 views
21

Ich habe diese foreach-Schleife:assoziatives Array Erstellen von Foreach-Schleifen PHP

foreach($aMbs as $aMemb){ 
    $ignoreArray = array(1,3); 
    if (!in_array($aMemb['ID'],$ignoreArray)){ 
     $aMemberships[] = array($aMemb['ID'] => $aMemb['Name']); 
    } 
} 

dies die richtigen Felder druckt, aber sie sind Arrays innerhalb Arrays. Ich brauche die foreach-Schleife, um ein einfaches Array wie dieses auszugeben:

Was mache ich falsch?

Antwort

38

Sie benötigen $ aMemberships Zuordnung

$aMemberships[] = $aMemb['Name']; 

Wenn Sie ein Array ändern möchten

$aMemberships[$aMemb['ID']] = $aMemb['Name']; 

wenn Sie eine Karte möchten.

Was Sie tun, ist ein Array an ein Array anhängen.

+0

Jede Antwort war die gleiche. Hatte Schwierigkeiten, einen für die Wahl auszusuchen.+1, um zu erklären, dass er ein Array an ein Array anhängte. – stevendesu

8

Statt

$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']); 

Versuchen

$aMemberships[$aMemb['ID']] = $aMemb['Name']; 
+1

ich vorüberging, fand die Antwort nützlich! +1 und danke – Sean

3

Ihr vorhandener Code verwendet einen inkrementellen Schlüssel und verwendet das Array als entsprechenden Wert. Um $aMemberships ein assoziatives Array mit Schlüssel als $aMemb['ID'] und Wert zu machen machen $aMemb['Name'] sind Sie

$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']); 

in der foreach-Schleife ändern müssen:

$aMemberships[$aMemb['ID']] = $aMemb['Name']); 
0

druckt es ein Array von Arrays, weil Sie tun Also in dieser Zeile

$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']); 

wo Sie [] nach einer Variablen, die Sie angeben th zuweisen e-Wert in einer neuen Zeile des Arrays und Sie Einfügen eines anderen Array in dieser Reihe

so können Sie die Beispiele verwenden haver die anderen schon gab oder Sie diese Methode verwenden können:

int array_push (array &$array , mixed $var [, mixed $... ]) 

hier ist ein Beispiel, das Sie in der api

<?php 
$stack = array(0=>"orange",1=>"banana"); 
array_push($stack, 2=>"apple",3=>"raspberry"); 
print_r($stack); 
?> 

//prints 
Array 
(
    [0] => orange 
    [1] => banana 
    [2] => apple 
    [3] => raspberry 
) 

http://php.net/manual/en/function.array-push.php

14

Assoziatives Array in foreach-Anweisung finden:

foreach($nodeids as $field => $value) { 

    $field_data[$field]=$value; 

} 

Ausgang:

Array(
$field => $value, 
$field => $value 
... 
); 

Insertion in CodeIgniter:

$res=$this->db->insert($bundle_table,$field_data);