左连接,但在 PHP 数组中


LEFT JOIN but in PHP Array

我有两个数组。

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中是简单的LEFT JOIN,但我不知道是否像PHP中的函数一样。我只是尝试编写一些if等代码,但没有成功。我想要一个简单的解决方案,所以如果它是不可能的,那么告诉我。

干杯!

就像 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
       }
   }
}