[英]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.