首页 > 解决方案 > 如果某些值匹配,如何用其他填充数组

问题描述

嗨我正在尝试填充这个数组

Array
(
    [0] => Array
        (
            [id] => 107
            [name] => Sara
            [msgSinleer] => 2
            [subject] => Array
                (
                )
        )

    [1] => Array
        (
            [id] => 110
            [name] => Manuela 
            [msgSinleer] => 27
            [subject] => Array
                (
                )
        )

)

如果其中一个 ID 匹配,则使用此数组的值

Array
(
    [0] => Array
        (
            [id] => 110
            [Cliente] => Alexis
            [body] => Hola
            [fecha] => 06/01/2021 11:35 AM
            [status] => 1
            [tiempoSinLeer] => 15 01:00
        )

    [1] => Array
        (
            [id] => 110
            [Cliente] => Alexis
            [body] => Hola asd asdasd
            [fecha] => 05/26/2021 11:35 AM
            [status] => 1
            [tiempoSinLeer] => 21 01:00
        )

    [2] => Array
        (
            [id] => 107
            [Cliente] => George
            [body] => vhgfshsgf
            [fecha] => 06/15/2021 03:48 PM
            [status] => 1
            [tiempoSinLeer] => 1 08:48
        )

)

所以我试图以这种方式显示结果,但我不知道该怎么做,我尝试了其他一些方法,如 array_search、array_in 和另一个 foreach 中的 foreach 试图查看里面是否可以执行 if 语句,但它不起作用。

Array
(
    [0] => Array
        (
            [id] => 107
            [name] => Sara
            [msgSinleer] => 2
            [subject] => Array
               (
                    [Cliente] => George
                    [body] => vhgfshsgf
                    [fecha] => 06/15/2021 03:48 PM
                    [status] => 1
                    [tiempoSinLeer] => 1 08:48
               )
        )

    [1] => Array
        (
            [id] => 110
            [name] => Manuela 
            [msgSinleer] => 27
            [subject] => Array
               (
                    [Cliente] => Alexis
                    [body] => Hola
                    [fecha] => 06/01/2021 11:35 AM
                    [status] => 1
                    [tiempoSinLeer] => 15 01:00
               ),
               (
                    [Cliente] => Alexis
                    [body] => Hola asd asdasd
                    [fecha] => 05/26/2021 11:35 AM
                    [status] => 1
                    [tiempoSinLeer] => 21 01:00
               )
            
        )

)

这是我拥有的代码,它给我带来了数组

foreach ($query2 as $key2) {
   $result2[] = $key2;
}
        
foreach ($query as $value) {
      array_push($result , array(
       "id" => $value['id'],
       "name" => $value['name'],
       "msgSinLeer" => $value['msgSinleer'],
       "subject" => array(),
      ));
}

print_r ($result);
print_r ($result2);

我是 php 新手,所以如果有人可以帮助我,我将不胜感激

标签: php

解决方案


遵循逻辑可能会对您有所帮助。循环遍历数组$arr0以查找匹配id$arr1. 找到匹配项后,推送到 中的“主题”元素$arr0

foreach($arr0 as $key => $record) {
    foreach($arr1 as $subject) {
        if($record['id'] === $subject['id']) $arr0[$key]['subject'][] = $subject;
    }
}

演示


推荐阅读