Foreach中的两个多维数组

时间:2014-12-24 07:59:30

标签: php

我想同时使用两个数组 你会明白我想要的只是检查foreach循环

<?php
$ar = array("az"=>"1");
$ar2 = array("az2"=>"2");
*foreach ($ar as $key => $value and $ar2 as $key2 => $value2) {
    echo $key2 ."<br>".$key;
}
die();
?>

2 个答案:

答案 0 :(得分:3)

foreach (array_combine(array_keys($ar), array_keys($ar2)) as $key => $key2) {
   echo $key, ', ', $key2, '<br>';
   echo $ar[$key], ', ', $ar2[$key2], '<br>';
}

这严格要求两个数组都具有相同数量的元素。

或者,如果你想返回一些新值而不是回声,我建议:

$result = array_map(
    function ($key, $val, $key2, $val2) {
        return /* something like array("$key-$key2" => "$val-$val2") */;
    },
    array_keys($ar), $ar, array_keys($ar2), $ar2
);

对于更多“裸机”(可能更有效)的解决方案,请执行以下操作:

reset($ar);
reset($ar2);

while (list($key, $val) = each($ar)) {
    list($key2, $val2) = each($ar2);

    echo $key, ', ', $key2, '<br>';
    echo $val, ', ', $val2, '<br>';
}

答案 1 :(得分:0)

如果您的两个阵列大小不同,这是一个解决方案 它的工作尺寸也相同

    $ar = array("az"=>"1","xy"=>"2");
    $ar2 = array("az2"=>"2","sa"=>4,"sds"=>5);
    $arkeys = array_keys($ar);
    $ar2keys=array_keys($ar2);

    for($i=0;$i<max(sizeof($ar),sizeof($ar2));$i++)
    {
        if(sizeof($ar)>$i)
        {
            echo $arkeys[$i];//key
            echo $ar[$arkeys[$i]];//value
        }
        if(sizeof($ar2)>$i)
        {
            echo $ar2keys[$i];//key
            echo $ar2[$ar2keys[$i]];//value
        }

    }