所以我有一个类似如下的数组:
Array
(
[0] => Array
(
[user_id] => 684
[sec_id] => 2
[rank_id] => 1
[rank] => usr
)
[1] => Array
(
[user_id] => 693
[sec_id] => 3
[rank_id] => 5
[rank] => usr
)
)
我还有另一个像这样的数组
Array
(
[0] => 2
[1] => 7
[2] => 27
)
我想要在第一个数组的每个数组的末尾添加第二个数组的值,并且它应该相乘。我的意思是,如果第一个数组中有100个数组,第二个数组中有3个元素,那么结果数组中应该有300个。
以上述为例,我想有如下内容:
user_id | sec_id | rank_id | rank | menu_id
684 | 2 | 1 | usr | 2
684 | 2 | 1 | usr | 7
684 | 2 | 1 | usr | 27
693 | 3 | 5 | usr | 2
693 | 3 | 5 | usr | 7
693 | 3 | 5 | usr | 27
我尝试使用以下功能,但它无效。
function getR($arr_one,$arr_two) {
foreach ($arr_one as $k=>&$v) {
foreach ($arr_two as $x=>&$y) { $v['menu_id'] = $y; }
}
return $arr_one;
}
这只是制作一个这样的数组:
user_id | sec_id | rank_id | rank | menu_id
684 | 2 | 1 | usr | 27
693 | 3 | 5 | usr | 27
意思是,它只是在第一个数组的每个元素的末尾添加menu_id,而不是相乘。任何想法,我肯定错过了一些东西。
谢谢你们。
答案 0 :(得分:2)
function getR($arr_one,$arr_two) {
$new_arr = array();
foreach ($arr_one as $k=>$v) {
foreach ($arr_two as $x=>$y) {
$this_item = $v;
$this_item['menu_id'] = $y;
$new_arr[] = $this_item;
}
}
return $new_arr;
}
答案 1 :(得分:1)
我不会问......但试试这个:
<?php
function crazy ($arr1,$arr2) {
foreach ($arr1 as $key=>$value) {
foreach ($arr2 as $value2) {
$nvalue=$value;
$nvalue[]=$value2;
$new[]=$nvalue;
}
}
return $new;
}
$arr1=array(array('user'=>1,'dude'=>2),array('user'=>2,'dude'=>3));
$arr2=array(2,7,27);
print_r(crazy($arr1,$arr2));
这也经过了测试,http://www.ideone.com/Of126
答案 2 :(得分:0)
没有测试(eek!)我想象这样的事情:
function getR( $arr_one, $arr_two )
{
$second_key = 0;
foreach ( $arr_one as $k => &$v )
{
$v['menu_id'] = $second_key++;
if ( 3 == $second_key ) $second_key = 0;
}
return $arr;
}
据推测,你是通过引用传递第一个数组的?不确定你回来的$arr
是什么......