使用PHP的Foreach循环创建关联数组

28

我有一个 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');

我做错了什么?

6个回答

50
你需要更改你的 $aMemberships 赋值。
$aMemberships[] = $aMemb['Name']; 

如果你想要一个数组

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

如果你需要一个映射表。

你正在将一个数组附加到另一个数组中。


每个答案都是一样的。很难选择一个投票。+1 是因为解释了他正在将一个数组附加到另一个数组中。 - stevendesu
如果查询返回ID和名称,如何循环遍历,以便ID和名称可以安置在一个<td value="id">name</td>中。 - Ali Raza

23

在foreach语句中使用的关联数组:

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

  $field_data[$field]=$value;

}

输出:

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

CodeIgniter中的插入操作:

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

10

不要使用

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

尝试一下

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

4

您现有的代码使用增量键,并使用数组作为相应的值。 要将$aMemberships变为关联数组,键为$aMemb['ID'],值为$aMemb['Name'],您需要进行更改。

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

在foreach循环中:

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

如果查询返回ID和名称,如何循环遍历,以便ID和名称可以安置在一个<td value="id">name</td>中? - Ali Raza

1

它打印了一个数组的数组,因为你在这一行这样做了

$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


0
在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');

为此,您应该$key的值是数字。 - Gufran Hasan
id来自数据库。 - Ali Raza
在数组中赋值之前,加入条件进行检查。 - Gufran Hasan
Gufran兄弟,我无法理解它。 - Ali Raza
1
兄弟,你的问题不清楚,请更新并说明你的问题。你想做什么? - Gufran Hasan
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接