[英]Create associative array from Foreach Loop 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');
我究竟做錯了什么?
您需要更改您的 $aMemberships 分配
$aMemberships[] = $aMemb['Name'];
如果你想要一個數組
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
如果你想要一張地圖。
您正在做的是將數組附加到數組中。
foreach 語句中的關聯數組:
foreach($nodeids as $field => $value) {
$field_data[$field]=$value;
}
輸出:
Array(
$field => $value,
$field => $value
...
);
在 CodeIgniter 中插入:
$res=$this->db->insert($bundle_table,$field_data);
代替
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
嘗試
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
您現有的代碼使用增量鍵並將數組用作相應的值。 要使$aMemberships
成為鍵為$aMemb['ID']
且值為$aMemb['Name']
的關聯數組,您需要更改
$aMemberships[] = array($aMemb['ID'] => $aMemb['Name']);
在 foreach 循環中:
$aMemberships[$aMemb['ID']] = $aMemb['Name']);
它打印一個數組數組,因為您在這一行中這樣做
$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
)
您在 foreach 循環中獲取關聯數組的key and value
,並使用鍵和值對創建關聯。
$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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.