J'ai cette boucle foreach:
foreach($aMbs as $aMemb){
$ignoreArray = array(1,3);
if (!in_array($aMemb['ID'],$ignoreArray)){
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
}
}
Cela imprime les bons champs mais ce sont des tableaux à l'intérieur des tableaux. J'ai besoin de la boucle foreach pour sortir un tableau simple comme celui-ci:
$aMemberships = array('1' => 'Standard', '2' => 'Silver');
Qu'est-ce que je fais mal?
Vous devez modifier votre affectation $ aMemberships
$aMemberships[] = $aMemb['Name'];
Si vous voulez un tableau
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
si vous voulez une carte.
Ce que vous faites, c'est d'ajouter un tableau à un tableau.
Tableau associatif dans l'instruction foreach:
foreach($nodeids as $field => $value) {
$field_data[$field]=$value;
}
Production:
Array(
$field => $value,
$field => $value
...
);
insertion dans CodeIgniter:
$res=$this->db->insert($bundle_table,$field_data);
Au lieu de
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
Essayer
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
Votre code existant utilise une clé incrémentielle et utilise le tableau comme valeur correspondante. Pour faire make $aMemberships
un tableau associatif dont la clé est $aMemb['ID']
et la valeur étant $aMemb['Name']
vous devez changer
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
dans la boucle foreach pour:
$aMemberships[$aMemb['ID']] = $aMemb['Name']);
il imprime un tableau de tableaux parce que vous le faites dans cette ligne
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
où vous [] après une variable, vous indiquez d'attribuer la valeur dans une nouvelle ligne du tableau et vous insérez un autre tableau dans cette ligne
vous pouvez donc utiliser les exemples que les autres ont déjà donnés ou vous pouvez utiliser cette méthode:
int array_Push ( array &$array , mixed $var [, mixed $... ] )
voici un exemple que vous pouvez trouver dans l'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
)
Vous obtenez key and value
d'un tableau associatif dans la boucle foreach et créez un associatif avec des paires clé/valeur.
$aMemberships=array();//define array
foreach($aMbs as $key=>$value){
$ignoreArray = array(1,3);
if (!in_array($key,$ignoreArray)){
$aMemberships[$key] = $value;
}
}
Il vous donnera une sortie attendue:
array('1' => 'Standard', '2' => 'Silver');