从php中的多个数组中获取相同键的值

Art*_*ngh 3 php arrays key multidimensional-array

我试图将数组中的“TID”与这些多个数组分开,但我找不到有效的解决方案。

我在一个变量中有以下类型的数组:

Array
(
    [0] => Array
        (
            [tid] => 168
        )

)
Array
(
    [0] => Array
        (
            [target_id] => 14
        )

    [1] => Array
        (
            [target_id] => 15
        )

    [2] => Array
        (
            [target_id] => 37
        )

)
Array
(
)
Array
(
    [0] => Array
        (
            [target_id] => 36
        )

)
Array
(
    [0] => Array
        (
            [target_id] => 14
        )

    [1] => Array
        (
            [target_id] => 15
        )

)
Array
(
    [0] => Array
        (
            [target_id] => 36
        )

)
Array
(
    [0] => Array
        (
            [tid] => 168
        )

    [1] => Array
        (
            [tid] => 167
        )

)
Run Code Online (Sandbox Code Playgroud)

这些值在一个变量中,并且可以有无限的数组。

和预期输出:

Array
(
    [0] => Array
        (
            [tid] => 168
        )
    [1] => Array
        (
            [tid] => 168
        )

    [2] => Array
        (
            [tid] => 167
        )

)
Run Code Online (Sandbox Code Playgroud)

Rah*_*hul 5

您正在搜索array_column

这是语法

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
Run Code Online (Sandbox Code Playgroud)

描述

array_column — Return the values from a single column in the input array
Run Code Online (Sandbox Code Playgroud)

例子 :

$records = array(
    array(
       tid => 167
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
         tid => 166
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
         tid => 168
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
         tid => 169
    )
);

$ids= array_column($records, 'tid');
Run Code Online (Sandbox Code Playgroud)

输出 :

Array
(
    [0] => 167
    [1] => 166
    [2] => 168
    [3] => 169
)
Run Code Online (Sandbox Code Playgroud)

如果你有更多的数组,

$records1 = [ ['tid' => 169]];
$ids1 = array_column($records1, 'tid');
Run Code Online (Sandbox Code Playgroud)

那么你可以做array_merge

$ids = array_merge($ids, $ids1);
Run Code Online (Sandbox Code Playgroud)

输出 :

Array
(
    [0] => 167
    [1] => 166
    [2] => 168
    [3] => 169
    [4] => 169
)
Run Code Online (Sandbox Code Playgroud)