同时从2个php多维数组中提取值

同时从2个php多维数组中提取值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我使用了两个字符串数组,一个是全尺寸图像url,另一个是缩略图url 我正在构建一个带有for循环的标记,但我不知道如何从中访问第二个数组值。我试着举个例子: $array_images[70] = array("image1", "image2", "image3"); $array_thumbs[70] = array("thumb1", "thumb2", "thumb3"); print_r($array_images); print_r($array_

我使用了两个字符串数组,一个是全尺寸图像url,另一个是缩略图url

我正在构建一个带有
for循环的
标记,但我不知道如何从中访问第二个数组值。我试着举个例子:

$array_images[70] = array("image1", "image2", "image3");        
$array_thumbs[70] = array("thumb1", "thumb2", "thumb3");        

print_r($array_images);
print_r($array_thumbs);


foreach( $array_images as $key => $value ){
    foreach( $value as $keyv => $valuev ){
        echo $valuev."\n";
    }
}
这将更改输出:

Array
(
    [70] => Array
        (
            [0] => image1
            [1] => image2
            [2] => image3
        )

)
Array
(
    [70] => Array
        (
            [0] => thumb1
            [1] => thumb2
            [2] => thumb3
        )

)
image1
image2
image3
Thumb: thumb1
Image: image1

Thumb: thumb2
Image: image2

Thumb: thumb3
Image: image3

我想显示image1->thumb1。但我不知道如何将两个数组合并到for循环中,确实尝试了一些循环,但我还没有解决它。有什么想法吗?

由于两个数组长度相等,并且使用数字索引(其中一个数组的每个索引值与另一个数组的索引值相对应:并行数组),因此两个数组只能安全地使用一个循环。。。然后使用
$键
访问另一个。下面的片段足以说明这个想法

    <?php
        // SIMULATING SUB-ARRAYS FOR FULL-SIZE IMAGES...
        $array_images1      = array("image1", "image2", "image3");
        $array_images2      = array("image4", "image5", "image6");

        // SIMULATING SUB-ARRAYS FOR THUMBNAIL IMAGES...
        $array_thumbs1      = array("thumb1", "thumb2", "thumb3");
        $array_thumbs2      = array("thumb4", "thumb5", "thumb6");

        // SIMULATING MULTIDIMENSIONAL ARRAY OF FULL/THUMB IMAGES...
        $array_main_full    = array($array_images1, $array_images2);  //<== SAME KEY/SAME IMAGE ONLY FULL.
        $array_thumbs_full  = array($array_thumbs1, $array_thumbs2);;  //<== SAME KEY/SAME IMAGE ONLY THUMB.

        // ONE LOOP: INTENDED RESULT
        foreach($array_main_full as $iKey=>$array_images){
            foreach( $array_images as $key => $value ){
                echo $value . "<br />";
                echo $array_thumbs_full[$iKey][$key] . "<br /><br />";
            }

        }

        // PRODUCES::           
        string 'image1' (length=6)
        string 'thumb1' (length=6)

        string 'image2' (length=6)
        string 'thumb2' (length=6)

        string 'image3' (length=6)
        string 'thumb3' (length=6)

        string 'image4' (length=6)
        string 'thumb4' (length=6)

        string 'image5' (length=6)
        string 'thumb5' (length=6)

        string 'image6' (length=6)
        string 'thumb6' (length=6)

您可以使用数组

$images = array_combine($array_images,$array_thumbs);

此代码将两个阵列“连接”在一起:

$array = array();
array_walk(array_combine($images, $thumbs), function($v, $k) use(&$array){
    $array[] = array(
        'image' => $k,
        'thumb' => $v
    );
});

print\r($array)将输出:

Array
(
    [0] => Array
        (
            [image] => image1
            [thumb] => thumb1
        )

    [1] => Array
        (
            [image] => image2
            [thumb] => thumb2
        )

    [2] => Array
        (
            [image] => image3
            [thumb] => thumb3
        )

)
请注意,我使用了名为
images
thumbs
的变量。请参阅正在运行的代码


如果要循环新数组,请使用以下内容:

foreach($array as $v){
    echo 'Thumb: ' . $v['thumb'] . '<br>';
    echo 'Image: ' . $v['image'] . '<br><br>';
}

查看它的操作。

如果两个数组都有相同的索引
foreach($key=>value的数组){foreach($keyv=>value){echo$valuev.“$array\u thumbs[$key][$keyv]。“\n”;}}