2015-06-11 3 views
1

У меня есть три массива с таким же количеством элементов, где значения могут быть одинаковыми внутри каждого массива и между массивами.Создать многомерный массив из трех массивов

$areas 
0 => 1 
1 => 3 
2 => 3 
3 => 5 

$targets 
0 => 1 
1 => 2 
2 => 3 
3 => 3 

$ratings 
0 => 1 
1 => 1 
2 => 2 
3 => 3 

Я хочу создать многомерный массив ($ элементов), который показывает значение $ рейтингов доступа значения $ областей и $ цели в качестве ключей.

Example: 
$elements[area][target] = rating 
$elements[1][1] = 1 
$elements[3][2] = 1 
$elements[3][3] = 2 
$elements[5][3] = 3 

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

Может ли кто-нибудь помочь мне достичь того, чего я хочу?

+2

Вы столкнетесь с проблемой, что ключи должны быть уникальными! – Rizier123

+0

Лучшее, что я придумал, это начать с $ elements = array_flip ($ areas), а затем сделать значения этого массива нулевыми. Что дает мне $ elements 1 => null, 3 => null, 5 => null. Оттуда мне нужен способ добавить соответствующий идентификатор цели в соответствующий идентификатор области, но у меня не было способа сделать это. Причина, по которой я не опубликовал эту попытку, заключается в том, что я предполагаю, что должен быть лучший способ, о котором я не думал, извините. – Bergkamp10

+1

@ Bergkamp10 Ваша первая проблема заключается в том, что у вас не может быть дубликатов ключей, поэтому вы не можете получить ожидаемый результат, он никогда не будет работать – Rizier123

ответ

0

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

Я бы посоветовал вам взглянуть на это под другим углом, потому что просто нет правильного объяснения для этого именно таким образом с такими значениями.

Мое предложение было бы читать на php associative arrays

Поскольку этот тип массива очень часто используется при создании multidementional массивов. В этом массиве вы в основном устанавливаете пары key => value, и поскольку вы можете использовать строки как ключи, легко создать массив, который имеет смысл, например.

$people = array(
    array(
     'firstname' => 'John', 
     'surname' => 'Doe', 
     'age' => 29, 
     'sex' => 'Male' 
     //etc... 
    ); 
); 

теперь, если вы перебираете основной массив, вы получите массив обратно с теми key => value парами, и они дают вам полезную информацию, а не прыгать обручи с многими чисел;)

Надеются, что это помогает , Sidney

Смежные вопросы