2012-01-19 3 views
-1

У меня есть два отдельных массива - $array_before и $array_after. Каждый массив может иметь неограниченное количество значений. я могу выводить отдельные значения массива, как так:Как сопоставить ключи массива от отдельных массивов

print $array_before->field_things[0]['value'] 

или

print $array_after->field_other_things[0]['value'] 

или я могу напечатать все значения в каждом массиве отдельно:

foreach($array_before->field_things as $before_stuff) 
{ 
print $before_stuff['value'] 
} 

Но это отдавание me this:

Before Value 0 
Before Value 1 
Before Value 2 
Before Value 3... 
-------- 
After Value 0 
After Value 1 
After Value 2 
After Value 3... 

Что мне нужно сделать, это из положить ОБА массива значений, сгруппированных по тиру ключей массива, как это:

Before Value 0 
After Value 0 
------- 
Before Value 1 
After Value 1 
------ 
Before Value 2 
After Value 2 

ответ

1

У $array_before->field_things и $array_after->field_other_things имеют одинаковую длину после преобразования? Затем вы можете просто перебирать индексы в них:

for ($i=0; $i<count($array_before->field_things); $i++) { 
    print "Before value: ".$array_before->field_things[i]['value'] 
    print "After value: ".$array_after->field_other_things[i]['value'] 
} 
+0

Красивые - это сработало! – landing

1

Вы можете сделать это в одном массиве, и это будет намного проще. Построить его как:

$array->field_things[0]['before'] 
$array->field_things[0]['after'] 

Тогда доступ к нему, как:

foreach($array->field_things as $stuff) 
{ 
    print "Before Value: $stuff['before']\n"; 
    print "Before Value: $stuff['after']\n"; 
} 
+0

Я не могу восстановить массивы. Они многомерны и уже построены. Могу ли я объединить существующие массивы? – landing

+0

Существует функция для этого в [этой теме] (http://stackoverflow.com/questions/5971901/how-to-merge-multidimensional-arrays-whilst-preserving-all-unique-key-values) Если массивы одинаковы и соответствуют модели, описанной ниже, и решение @. – Ilion

0

Не реально получить ваш вопрос, думаю, что вы хотите:

foreach($array_before->field_things as $key=>$before_stuff) 
{ 
    print $before_stuff['value']; 
    print $array_after->field_other_things[$key]['value']; 
    print "<br/>-----------------<br/>"; 
} 
Смежные вопросы