2013-07-09 3 views
0

Я застрял в самообучении PHP из-за цикла массива.PHP: зацикливание двух массивов

Скажем, у меня есть два arrays, одинаковое количество элементов:

$description 
: array = 
    0: string = Name 
    1: string = LastName 
    2: string = Address 
    3: string = City 
    4: string = Country 

$value 
: array = 
    0: string = Dan 
    1: string = Smith 
    2: string = 4, Burlington St 
    3: string = London 
    4: string = England 

Что я должен сделать, чтобы напечатать следующее? :

Имя: Dan
LastName: Smith
Адрес: 4, Burlington St
Город: Лондон
Страна: Англия

+3

Поскольку вы изучаете, это прекрасное время, чтобы узнать, что ассоциативная обработка массива в PHP лучше подходит к чему-то вроде 'массива («имя»=>«Dan»,«LastName» => 'Смит', 'Адрес' => '...', ....) ' –

ответ

5

Вы можете использовать array_combine, чтобы объединить эти два массива в один:

$c = array_combine($description, $value); 
foreach ($c as $key => $value) { 
    echo $key . ": " . $value; 
} 
0

Попробуйте

for ($i = 0; $i < count($description); $i++) { 
    echo $description[$i] . ': '.$value[$i] . '<br/>'; 
} 
0

Попробуйте как

$new_arr = array(); 
for(int i=0;i<count($description);$i++) { 
    $new_arr[$description] = $value; 
} 

Теперь

foreach($new_arr as $key => $val) { 
    echo $key . ':' .$val.'<br>'; 
} 
1

Вариант № 1:

foreach($description as $key => $descText) { 
    echo $descText, ': ', $value[$key], PHP_EOL; 
} 

Вариант № 2

$mi = new MultipleIterator(); 
$mi->attachIterator(new ArrayIterator($description)); 
$mi->attachIterator(new ArrayIterator($values)); 
foreach($mi as $detail) { 
    list($descText, $descValue) = $detail; 
    echo $descText, ': ', $descValue, PHP_EOL; 
} 
+0

# 2 приятно, но немного похоже на стрельбу мухой с пушкой –

+0

исправлена ​​ошибка - и, хотя это кувалда, Я по-прежнему люблю MultipleIterators, особенно при работе с несогласованными индексами (не здесь, я знаю) –

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