Как мне создать ассоциативный массив из динамических переменных в php? - PullRequest
0 голосов
/ 10 марта 2011

У меня есть этот код:

$people=array();
$i=0;
foreach ($xml->xpath('//person') as $character) {
if ($character->status!="Active"){

  $people[$i]['fullname']=(string)$character->fullname;
  $people[$i]['status']=(string)$character->status;
  $i++;

    }
}

Создает массив с числовыми ключами на основе значения $ i. Однако я на самом деле не хочу этого, я хочу, чтобы строка «полное имя» была ключом, но я не могу понять, как динамически назначить ключ. Я пытался что-то вроде:

$people[(string)$character->fullname]=>(string)$character->status;

но это просто выдает ошибки. Я не могу понять, как создавать ключи на основе переменных. Кто-нибудь может помочь, пожалуйста?

Ответы [ 3 ]

7 голосов
/ 10 марта 2011

Попробуйте еще раз, но с =, а не =>:

$people[ (string) $character->fullname ] = (string) $character->status;
1 голос
/ 10 марта 2011

Вы используете только => в определении массива. В противном случае просто используйте стандартное болотное назначение:

$people[$character->fullname] = $character->status;

Вам не нужны приведения, поскольку у вас уже есть строки. Даже если вы этого не сделаете, вы можете просто положиться на динамическую типизацию, чтобы преобразовать их по мере необходимости при выводе.

0 голосов
/ 10 марта 2011
$people[$character->fullname] = (string)$character->status;
...