преобразовать данные массива с помощью php - PullRequest
0 голосов
/ 28 мая 2018
            [original:protected] => Array
                (
                    [user_id] => 65751
                    [social_id] => 
                    [parent_id] => 
                    [org_id] => 1
                    [type] => 3
                    [s_id] => 1
                    [role_id] => 0
                    [active] => 1
                    [name] => RX
                    [first_name] => JJ
                    [last_name] => DKL
                    [email] => first@testmail.com
                    [secondary_email] => 
                    [username] => cLvcyUr2

                )


    [1] => User Object

                (
                    [user_id] => 82197
                    [social_id] => 
                    [parent_id] => 
                    [org_id] => 1
                    [type] => 2
                    [s_id] => 1
                    [role_id] => 0
                    [active] => 1
                    [name] => sec
                    [first_name] => XX
                    [last_name] => J3
                    [email] => first@testmail.com
                    [secondary_email] => 
                    [username] => VfTqXyvJ

                )

Как преобразовать данные массива означает сохранить только два адреса электронной почты, а остальные имена пользователей должны удалить

Array (
[0] => Array (
    [email] => first@testmail.com
    [username] => cLvcyUr2
    )
[1] => Array (
    [email] => first@testmail.com
    [username] => VfTqXyvJ
    )
)

Как это возможно, если я не удаляю данные по одному, они автоматически сбрасываются ивыбрать только два значения

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Вы пробовали что-то подобное:

$index = array_search('user_id', $array);
unset($array[$index]);

Сделайте это для всех ключей, которые вы хотите удалить.

0 голосов
/ 28 мая 2018
$newArray = [];

foreach ($oldArray as $item) {
$arr = [];
    $arr['email'] = $item->email;
    $arr['username'] = $item->username;

    $newArray[] = $arr;
}
0 голосов
/ 28 мая 2018

Почему бы не создать пустой массив и просто скопировать нужные значения?Попытка сбросить все в вашем массиве - это большая работа, которая не требует особого сопровождения из собственного опыта.

Обратите внимание, что вставленный код содержит как массив, так и объект, но ваш вопрос касается только массива.

$newArray = [];

foreach ($oldArray as $item) {
    $newArray[] = [
        'email' => $item->email, 
        'username' => $item->username
    ]; // If $item is object
    $newArray[] = [
        'email' => $item['email'], 
        'username' => $item['username']
    ]; // If $item is array
}

var_dump($newArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...