Создание нового ключа в ассоциативном массиве и добавление значений к нему - PullRequest
2 голосов
/ 31 марта 2012

У меня есть связанный массив, похожий на этот:

array(225) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["firstname"]=>
    string(2) "me"
    ["lastname"]=>
    string(2) "ab"
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "2"
    ["firstname"]=>
    string(3) "you"
    ["lastname"]=>
    string(2) "bc"

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

array(225) {
      [0]=>
      array(4) {
        ["id"]=>
        string(1) "1"
        ["firstname"]=>
        string(2) "me"
        ["lastname"]=>
        string(2) "ab"
        ["newKey"]=>
        string() "1,2,3,....n" 
      [1]=>
      array(3) {
        ["id"]=>
        string(1) "2"
        ["firstname"]=>
        string(3) "you"
        ["lastname"]=>
        string(2) "bc"
        ["newKey"]=>
        string() "1,2,3,....x" 

и я хочу добавить новые записи к значению с ключом ["newKey"], но таким образом, чтобы старое значение не удалялось, а, как показано выше - мы отделяем каждое новое значение запятой от других.

Я пытался array_push и некоторые другие вещи, но не могу получить точный результат, который я хочу.

1 Ответ

3 голосов
/ 31 марта 2012

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

function addField(array &$aData, $newVal)
{
    foreach($aData as $aUnit)
        if(array_key_exists('newKey', $aUnit))
            $aUnit['newKey'] .= ",$newVal";
        else
            $aUnit['newKey'] = '1';
}

Дайте мне знать, если вы хотите, чтобы это расширилось, если это не так "достаточно базы, чтобы вы катились.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...