Ответ 1
Вам нужно изменить назначение $aMemberships
$aMemberships[] = $aMemb['Name'];
Если вам нужен массив
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
если вам нужна карта.
Что вы делаете, это добавить массив в массив.
У меня есть этот цикл 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']);
Try
$aMemberships[$aMemb['ID']] = $aMemb['Name'];
Существующий код использует инкрементный ключ и использует массив как соответствующее значение.
Чтобы сделать make $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
)