我想在两个具有不同形状的数组中映射值,如下所示:
$array1=array(
1=>array(1=>'apple', 2=>'banana', 3=>'cherry'),
2=>array(1=>'david', 2=>'eddie', 3=>'frank'),
);
现在:
$array2=array(
1=>'apple',
2=>'banana',
3=>'cherry',
4=>'david',
5=>'eddie',
6=>'frank',
);
例如,当$ array1 [2] [3]的值从frank
更改为paula
时,$ array2 [6]的值也会发生类似的变化。
我该怎么做?注意:一旦声明,密钥的数量不会改变。
答案 0 :(得分:1)
请使用数组合并,以下是它将如何帮助您。
<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
?>
将输出,
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
答案 1 :(得分:1)
<?php
$array1=array(
1=>array(1=>'apple', 2=>'banana', 3=>'cherry'),
2=>array(1=>'david', 2=>'eddie', 3=>'frank'),
);
$op = array();
foreach($array1 as $key =>$index){
$op =array_merge($array1[1],$array1[2]);
}
print_r( $op);
?>
使用array_merge合并两个数组
答案 2 :(得分:1)
您是否可以自由地以另一种方式构建$array2
?
如果你这样做,那么你就可以了解'链接'数组:
<?php
$array1=array(
1=>array(1=>'apple', 2=>'banana', 3=>'cherry'),
2=>array(1=>'david', 2=>'eddie', 3=>'frank'),
);
$array2=array(
1=>'apple',
2=>'banana',
3=>'cherry',
4=>'david',
5=>'eddie',
// Assign by reference $array1[2][3] (currently holding 'frank')
6=>&$array1[2][3],
);
// This will print the initial state of $array2
echo '<pre>';print_r( $array2 );echo '</pre>';
// Now change the value in $array1
$array1[2][3] = 'paula';
// And since $array2 'points' to the same memory location it will get
// changed too (well technically it won't but that's not important)
echo '<pre>';print_r( $array2 );echo '</pre>';
有关按推荐分配的详细信息,您可以查看this