2013-07-09 137 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 

我应该怎么做才能打印以下? :

名称:
名字:史密斯
地址:4,伯灵顿圣
市:伦敦
国家:英格兰

+3

既然你学习,这是一个伟大的时间来学习PHP的关联数组处理更适合于像'阵列(“名” =>“丹”,“姓氏” =''Smith','Address'=>'...',....)' –

回答

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,尤其是在处理不匹配的索引时(我不知道这里是这种情况) –