繁体   English   中英

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

[英]Get values of same key from multiple array in php

我正在尝试从多个数组中分离出数组中的“ 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
        )

)

您正在搜索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
)
$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM