PHP - 如何在2个foreach循环中为数组分配字符串键和值?

时间:2013-08-02 17:04:16

标签: php arrays foreach variable-assignment

我遇到的问题是在第二个foreach循环中值被覆盖。我需要将键设置为图像缩略图链接并将值设置为图像路径。

$img_thumbs = array('folder/thumb1.jpg','folder/thumb2.jpg','folder/thumb3.jpg');
$img_links = array('folder/image1.jpg','folder/image2.jpg','folder/image3.jpg');

$imgs = array();

foreach($img_links as $img_val)
{       
    foreach($img_thumbs as $thum_val)
    {
        $imgs[$thum_val] = $img_val
    }
}   

print_r($imgs);

输出(注意图像值如何重复最后一个值):

Array ( 
      ["folder/thumb1.jpg"] => ["folder/image3.jpg"],
      ["folder/thumb2.jpg"] => ["folder/image3.jpg"],
      ["folder/thumb3.jpg"] => ["folder/image3.jpg"]
)

我需要什么

Array ( 
      ["folder/thumb1.jpg"] => ["folder/image1.jpg"],
      ["folder/thumb2.jpg"] => ["folder/image2.jpg"],
      ["folder/thumb3.jpg"] => ["folder/image3.jpg"]
)

提前致谢

2 个答案:

答案 0 :(得分:3)

$imgs = array_combine($img_thumbs, $img_links);

请参阅http://php.net/array_combine

如果你绝对想在循环中这样做:

foreach ($img_thumbs as $i => $thumb) {
    $imgs[$thumb] = $img_links[$i];
}

答案 1 :(得分:0)

你只需摆脱其中一个foreach循环,每次循环时将Images数组递增