Извлечь значение из многомерного массива и поместить в строку через запятую - PullRequest
2 голосов
/ 20 сентября 2011

У меня есть массив, который выглядит так

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 ]

8 голосов
/ 20 сентября 2011
$uids = Array();
foreach($users as $u) $uids[] = $u['user_id'];
$list = implode(",",$uids);

Предполагается, что ваш массив имеет имя $users, а $list - это вывод.

2 голосов
/ 20 сентября 2011

Вы можете использовать комбинацию array_map и implode:

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

$csv = implode(array_map("get_uid", $your_array), ',');
echo $csv;    
0 голосов
/ 04 января 2018
$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;
0 голосов
/ 05 июня 2017

Это будет самый простой способ:

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

0 голосов
/ 20 сентября 2011

Перебирайте каждый элемент многомерного массива с помощью цикла foreach и обрабатывайте элемент как обычный массив. Затем вставьте значение user_id в другой массив и вставьте его через запятую, чтобы разделить его запятыми.

$user_ids = array();

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

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