Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Создание массивов по ключу


Автор: s1lver 10.7.2014, 14:43
Доброго времени суток!

На самом деле просто не представляю как объяснить, так как сам не понимаю как лучше сделать smile 

Есть исходный массив который надо преобразовать в несколько массивов по ключу. Исходный массив можно разделить на составляющие, тогда необходимо, видимо, соединить в другой массив.

Исходный массив
Код

  ["name"]=>
  array(3) {
    [0]=>
    string(10) "test name1"
    [1]=>
    string(10) "test name2"
    [2]=>
    string(0) ""
  }
  ["code"]=>
  array(3) {
    [0]=>
    string(10) "test name1"
    [1]=>
    string(10) "test name2"
    [2]=>
    string(0) ""
  }
  ["type"]=>
  array(3) {
    [0]=>
    string(6) "1"
    [1]=>
    string(8) "2"
    [2]=>
    string(4) "0"
  }
  ["element"]=>
  array(2) {
    [0]=>
    array(2) {
      [0]=>
      string(1) "1"
      [1]=>
      string(1) "2"
      [2]=>
      string(1) "3"
    }
    [1]=>
    array(2) {
      [0]=>
      string(1) "1"
      [1]=>
      string(1) "2"
    }
  }


Как можно преобразовать этот массив в такую структуру

Код

  [
    {"code":"test name1", "name":"test name1", "type":"1","element":["1","2","3"]},
    {"code":"test name2", "name":"test name2", "type":"2","element":["1","2"]},
...
]

Соответственно, массивов может быть больше двух.

Автор: baldina 10.7.2014, 16:49
как-то так http://ideone.com/lyz6Dj

Автор: s1lver 11.7.2014, 08:39
Не много не так. Преобразование не по code, а по ключу [0]=>. code - может быть одинаковым для разных значений.

Хотя конечный результат, тот что надо

Автор: s1lver 11.7.2014, 15:59
Совсем запутался, переделал формирование массива, чтобы сразу формировалась нужная структура. Проблема отпала сразу smile 

Автор: baldina 11.7.2014, 16:55
в вашем примере нет ключа [0]. если надо по первому, то вместо $data[$code] можно current($data)
но создание сразу нужной структуры это правильный путь)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)