我想同时使用两个数组 你会明白我想要的只是检查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();
?>
答案 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
}
}