1.获取二维数组中 name 和 cookie的值,适用于获取多个字段场景

$nameCookie = array_map(function ($item) {
            return array_intersect_key($item, array_flip(['name','cookie']));
        }, $data);

 

2. 获取二维数组中 name 的值, 只用于单个字段场景

$name = array_column($data,'name');

 

3. 检测一个数组中的元素是否在另一个二维数组中出现,如果有则返回数组ID

原始数据呈现:

^$rule = array:2 [
  0 => "https://www.youtobe.com"
  1 => "https://www.youtobe2.com"
]

^$comments = array:3 [
  0 => array:3 [
    "created_time" => "2024-11-26T10:00:30+0000"
    "message" => "😊😊https://www.youtobe2.com  me too"
    "id" => "122174342978061878_1652421272357730"
  ]
  1 => array:4 [
    "created_time" => "2024-11-26T09:58:12+0000"
    "message" => "the my like's website https://www.youtobe.com"
    "id" => "122174342978061878_2033666177146500"
  ]
  2 => array:4 [
    "created_time" => "2024-11-25T10:16:27+0000"
    "message" => "It looks really good"
    "id" => "122174342978061878_906859038089246"
  ]
]

处理方法:

$commentIds = array_map(
                function ($comment) {
                    return $comment['id'];
                },
                array_filter(
                    $comments,
                    function ($comment) use ($rule) {
                        foreach ($rule as $keyword) {
                            if (strpos($comment['message'], $keyword) !== false) {
                                return true; // 如果匹配到任意一个 $rule 元素,返回 true
                            }
                        }
                        return false; // 如果没有匹配到,返回 false
                    }
                )
            );
            dd($commentIds);
^ array:2 [
  0 => "122174342978061878_1652421272357730"
  1 => "122174342978061878_2033666177146500"
]
 

检测一个字符串是否在另一个二维数组中出现,如果有则返回数组ID

$commentIds = array_map(
                function ($comment) {
                    return $comment['id'];
                },
                array_filter(
                    $comments,
                    function ($comment) use ($rule) {
                        return strpos($comment['message'], $rule) !== false;
                    }
                )
            );