2014-01-07 5 views
1

Я пытаюсь добавить новые значения в ассоциативный массив динамически, и мне нужна ваша помощь. Вот простой пример:Добавление значений в ассоциативный массив

$a = array(); 
$a["name"]= "n1"; 
$a["age"]= "age1"; 
$a["name"]= "n2"; 
$a["age"]= "age2"; 

В результате: Массив (2) {[ "имя"] => строка (2) "П2" [ "возраст"] => строка (4) " age2 "}

Я хочу добавить Первый возраст и имя, а также возраст и имя для массива. Что я могу сделать??

+1

Array ключевое имя не может быть одинаковым для всех. Имя, возраст повторяется. use subarray –

ответ

6

Если вы хотите сохранить имя < => возрастное соотношение:

$a = array(); 
$a[] = array("name"=>"n1","age"=>"age1"); 
$a[] = array("name"=>"n2","age"=>"age2"); 

UPDATE: пример использования ниже:

foreach ($a as $assoc) { 
    echo $assoc["name"],' is ',$assoc["age"],'.<br />'; 
} 
+0

Таким образом, как я могу получить значения, используя foreach? –

+0

@ Обновленный ответ для иллюстрации. – Calimero

+0

Thanx :) ваш ответ мне помог :) –

1
$a = array(); 
$a["name"][]= "n1"; 
$a["age"][]= "age1"; 
$a["name"][]= "n2"; 
$a["age"][]= "age2"; 
+0

Пожалуйста, не добавляйте «спасибо» в качестве ответа. Вместо этого проголосуйте за ответы, которые вы найдете полезными. –

+0

@ A.Singh О чем ты говоришь? – Peon

+0

Это порождает разные результаты. В любом случае, спасибо;) –

1

Вы можете сделать по этому пути

$a = array(
    array(
     'name' => 'n1', 
     'age' => 'age1' 
), 
    array(
     'name' => 'n2', 
     'age' => 'age2' 
) 
); 
2
$a = array(); 
array_push($a, array("name"=>"n1","age"=>"age1")); 
array_push($a, array("name"=>"n2","age"=>"age2")); 

array_push

+0

Спасибо. Работает. :) –

1

Это очень легко и просто, вы можете делать все, что вы хотите с массивами !! у тебя есть сомнения? Здесь вы найдете:

$a = array(); 
if(is_array($a) && i_can_answer()) 
{ 
    $keys = array('age', 'name'); 
    $anotherArray = array(); 
    if(is_array($anotherArray) && i_know_multi_dimensional_arrays()) 
    { 
     array_push($anotherArray, array("+18", "ILovePHP")); 
     $result1 = array_combine($keys, $anotherArray); 
    } 
    $otherAnotherArray = array(); 
    if(is_array($otherAnotherArray) && i_am_not_tired()) 
    { 
     array_push($otherAnotherArray , array("+18", "ILovePHP")); 
     $result2 = array_combine($keys, $otherAnotherArray); 
    } 
    $a = array_merge($result1, $result2); 
} 
print_r($a); //// hoooorrraaaaaaaaaay 
Смежные вопросы