2013-10-31 69 views
1

我有两个数组。左加入,但在PHP阵列

Array 
(
    [0] => Array 
     (
      [id] => 12 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 1 
      [name] => Wypłata UNDICOM 
      [quantity] => 0 
      [value] => 1700 
     ) 

    [1] => Array 
     (
      [id] => 13 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 0 
      [name] => Rata (gwarancja MacBook Air) 
      [quantity] => 0 
      [value] => 90 
     ) 

    [2] => Array 
     (
      [id] => 16 
      [user_id] => 1 
      [date] => 2013-10-21 23:01:52 
      [type] => 0 
      [name] => TESCO (zakupy) 
      [quantity] => 0 
      [value] => 0 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [id] => 3 
      [data_id] => 16 
      [name] => Coca-Cola 
      [quantity] => 2 
      [value] => 5 
     ) 

    [1] => Array 
     (
      [id] => 4 
      [data_id] => 16 
      [name] => Pizza 
      [quantity] => 1 
      [value] => 10 
     ) 

) 

我想显示这两个数组,但第一个数组是一个类别,第二个数组有一个元素。 关系在id(第一个数组)和data_id(第二个数组)之间。 在MySQL中是简单的左加入,但我不知道如果是在PHP中的功能。 我只是尝试代码,如果等等,但没有成功。 我想要一个简单的解决方案,所以如果它是不可能的,那就告诉我。

干杯!

+2

你从哪里得到数据?我会尝试修复它,但如果你不能,我会循环一次通过第一个数组来生成一个数组,其中的关键是ID。这将使查找价值非常容易。 – jeroen

+0

@Grzegorz你能告诉我们你期待的最终结果是什么 –

+0

我想对这个数组进行数学运算,但正如你所看到的,有一个组(第一个数组)和可选元素列表(数组第二) 。我需要分配所有,如组 - >元素,或者如果空元素或dosnt存在,只获得组 – Grzegorz

回答

1

就像jeroen提到的那样,你可以遍历这两个数组并只获取那些有连接的元素。

$len1 = count(array1); 
$len2 = count(array2); 

for($i = 0 ; $i < len1 ; $i++) 
{ 
    for($j = 0 ; $j < len2 ; $j++) 
    { 
     if($array1[$i]['id'] == $array2[$j]['data_id']) 
     { 
      //some processing which you want to do with this data 
     } 
    } 
}