从多维数组中提取值并放在逗号分隔的字符串中

问题描述 投票:2回答:5

我有一个看起来像这样的数组

Array
(
    [1] => Array
        (
            [name] => Zeze
            [city] => Denver, 
            [state] => Colorado, 
            [country] => United States
            [user_id] => 1
            [cars] => Array
                (
                    [140] => Array
                        (
                            [cars_name] => BMW
                        )

                    [162] => Array
                        (
                            [cars_name] => Mazda
                        )
                )
        )

    [8] => Array
        (
            [name] => Lex
            [city] => Schwelm, 
            [state] => North Rhine-Westphalia, 
            [country] => Germany
            [user_id] => 5
            [cars] => Array
                (
                    [140] => Array
                        (
                            [cars_name] => Mercedes
                        )

                    [162] => Array
                        (
                            [cars_name] => Audi
                        )
                )
        )
)

我需要从user_id中提取值并将其放在逗号分隔的字符串中。

对于上面的数组,我想得到:

1,5

我有点困惑如何用foreach循环这个数组,然后我将如何创建字符串?或者,还有更好的方法?

php multidimensional-array foreach
5个回答
8
投票
$uids = Array();
foreach($users as $u) $uids[] = $u['user_id'];
$list = implode(",",$uids);

这假设您的数组名为$users$list是输出。


2
投票

你可以使用array_mapimplode的组合:

function get_uid($el) {
    return $el["user_id"];
}

$csv = implode(array_map("get_uid", $your_array), ',');
echo $csv;    

0
投票

使用foreach循环迭代多维数组中的每个项目,并将该项目视为普通数组。然后将user_id值推入另一个数组,并用逗号将其内插,以逗号分隔。

$user_ids = array();

foreach($arr in $multidim_arr) {
    array_push($user_ids, $arr["user_id"]);
}

$user_ids = implode(",", $user_ids);

0
投票

这将是最简单的方法:

echo implode(“,”,array_column($ myArray,“user_id”));


-1
投票
$stateId = Array (
     [0] => Array
         (
             [id] => 9
             [state_id] => 81
             [rto_id] => 82
             [is_active] => 1
         )
     [1] => Array
         (
             [id] => 10
             [state_id] => 82
             [rto_id] => 83
             [is_active] => 1
         )

 );

 $stateIds = implode(",", array_column($stateId, "state_id"));

 echo $stateIds;
© www.soinside.com 2019 - 2024. All rights reserved.