-4

If i have an array with 2 dynamic values like this :

 $people = array(
    "george" => "smith"
);

How can i push into that in php?

I have tried

array_push($people, "john" => "smith");

EDIT :

I have tried what has been commented but adding a new key doesnt create a new entry in the array, there is only 1 value although there should be 3..

 $people = array();

foreach ($items as $item){

    $name = $item->getElementsByTagName('name')->item(0);
    $num = $item->getElementsByTagName('number')->item(0);
    $mess = $item->getElementsByTagName('message')->item(0);

    if($name != NULL && $num != NULL && $mess != NULL){
        $people[$num->textContent] = $name->textContent;

    }

}
 var_dump($people);
Gaz Smith
  • 1,100
  • 1
  • 16
  • 30

4 Answers4

2

If new element has a defined key:

$people['newkey'] = 'newvalue';

Without any defined key:

$people[] = 'newvalue';
Reversal
  • 622
  • 5
  • 19
0

Array push but without key

array_push($people,'mark');

with key

$people['keytest'] = test;
Maninderpreet Singh
  • 2,569
  • 2
  • 17
  • 31
0

In this case, array_push will not work because there is not next index. What you can do is:

$people['new_key'] = 'new_value';

But it will replace the old value with same key if exist. So you can handle it with isset function.

if(isset($people['new_key'])){
    // do some stuff here!
}
else{
    $people['new_key'] = 'new_value';
}
Ali
  • 1,408
  • 10
  • 17
0

Fixed it by using

$people[] = array($num->textContent => $name->textContent);
Gaz Smith
  • 1,100
  • 1
  • 16
  • 30
  • By writing above code you just changed the structure of `$people` array. Now it will look like: array( array("key1" => "value1"), array("key2","value2")); just `var_dump($people)` OR `print_r($people)` – Ali Mar 29 '16 at 10:37