【问题标题】:Get values of same key from multiple array in php从php中的多个数组中获取相同键的值
【发布时间】:2017-09-09 13:05:02
【问题描述】:

我正在尝试将一个数组中的“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
        )

)

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

预期输出:

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

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

)

【问题讨论】:

  • 请出示您的代码
  • 并使用 一个变量 中的一个转储更新您的问题,例如 print_r($oneVariable)var_dump($oneVariable);

标签: php arrays multidimensional-array key


【解决方案1】:

您正在搜索array_column

这里是语法

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

说明

array_column — Return the values from a single column in the input array

例子:

$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');

输出:

Array
(
    [0] => 167
    [1] => 166
    [2] => 168
    [3] => 169
)

如果你有更多的数组,

$records1 = [ ['tid' => 169]];
$ids1 = array_column($records1, 'tid');

那你就可以array_merge了。

$ids = array_merge($ids, $ids1);

输出:

Array
(
    [0] => 167
    [1] => 166
    [2] => 168
    [3] => 169
    [4] => 169
)

【讨论】:

    【解决方案2】:
    $arr1= array("1"); // first 
    $arr2 = array("2") // second array
    $new = array();
    
    foreach($arr1 as $key=>$value){
     if($key=="yourkey"){
       $new[]=$value;
     }
    }
    
    foreach($arr2 as $ke2=>$valu2){
       if($key2=="yourkey"){
         $new[]=$value2;
       }
     }
    
     print_r($new);
    

    【讨论】:

    • 考虑为您的答案提供解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多