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

时间:2011-09-20 03:07:09

标签: php multidimensional-array foreach

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

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循环此数组,然后我将如何创建字符串?或者有更好的方法吗?

5 个答案:

答案 0 :(得分:8)

$uids = Array();
foreach($users as $u) $uids[] = $u['user_id'];
$list = implode(",",$uids);

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

答案 1 :(得分:2)

您可以结合使用array_mapimplode

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

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

答案 2 :(得分:0)

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

$user_ids = array();

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

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

答案 3 :(得分:0)

这将是最简单的方法:

echo implode(",",array_column($ myArray," user_id"));

答案 4 :(得分:-1)

{{1}}