web-dev-qa-db-ja.com

Foreachループから連想配列を作成PHP

このforeachループがあります。

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

これにより正しいフィールドが出力されますが、それらは配列内の配列です。このような単純な配列を出力するには、foreachループが必要です。

$aMemberships = array('1' => 'Standard', '2' => 'Silver');

私は何を間違えていますか?

21
tmartin314

$ aMembershipsの割り当てを変更する必要があります

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

配列が必要な場合

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

地図が必要な場合。

あなたがしているのは、配列に配列を追加することです。

44
GWW

Foreachステートメントの連想配列:

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

  $field_data[$field]=$value;

}

出力:

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

codeIgniterへの挿入:

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

の代わりに

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

試して

$aMemberships[$aMemb['ID']] = $aMemb['Name'];
9
Tim Gautier

既存のコードは増分キーを使用し、対応する値として配列を使用します。 $aMembershipsをキーとして$aMemb['ID']として、値を$aMemb['Name']に設定した連想配列にするには、変更する必要があります

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

foreachループで:

    $aMemberships[$aMemb['ID']] = $aMemb['Name']);
3
codaddict

この行で実行しているため、配列の配列を出力します

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

ここで、変数の後に、配列の新しい行に値を割り当てることを示しており、その行に他の配列を挿入しています

そのため、他の所有者が既に提供した例を使用するか、この方法を使用できます。

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

ここにあなたが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

1
mklfarha

key and value foreachループの連想配列のキーと値のペアを持つ連想配列を作成します。

$aMemberships=array();//define array
foreach($aMbs as $key=>$value){
    $ignoreArray = array(1,3);
    if (!in_array($key,$ignoreArray)){ 
        $aMemberships[$key] = $value;
    }
}

予想される出力が得られます。

array('1' => 'Standard', '2' => 'Silver');
0
Gufran Hasan